#![cfg_attr(feature = "ritual_rustdoc_nightly", feature(doc_cfg))]
//! This crate was generated by `ritual`.
//! &#32;   &#32;   &#32;   &#32;   &#32;   See [README](https://github.com/rust-qt/ritual) for more information.

mod __ffi {
    //! Functions provided by the C++ wrapper library

    include!(concat!(env!("OUT_DIR"), "/ffi.rs"));
}
pub mod ops;
pub use ::cpp_core;
pub use ::qt_3d_core;
pub use ::qt_core;
pub use ::qt_gui;
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html">QAbstractFunctor</a> is an abstract base class for all functors.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAbstractFunctor```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html">QAbstractFunctor</a> is an abstract base class for all functors.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html">QAbstractFunctor</a> is used as a base class for all functors and data generators in <a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a> module.</p>
/// <p>When user defines a new functor or generator, they need to implement the <a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html#id">QAbstractFunctor::id</a>() method, which should be done using the <code>QT3D_FUNCTOR</code> macro in the class definition.</p></div>
#[repr(C)]
pub struct QAbstractFunctor {
    _unused: u8,
}
impl QAbstractFunctor {
    /// <p>Returns a pointer to the id of the functor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual qintptr Qt3DRender::QAbstractFunctor::id() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html#id">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the id of the functor.</p></div>
    #[inline(always)]
    pub unsafe fn id(&self) -> isize {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractFunctor_id(
            self as *const crate::QAbstractFunctor,
        )
    }
}

pub mod q_abstract_light {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QAbstractLight```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractLight::Type```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Type(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Type {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Type(value)
        }
    }

    impl From<Type> for ::std::os::raw::c_int {
        fn from(value: Type) -> Self {
            value.0
        }
    }

    impl Type {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Type {
        /// C++ enum variant: <span style='color: green;'>```PointLight = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const PointLight: crate::q_abstract_light::Type = crate::q_abstract_light::Type(0);
        /// C++ enum variant: <span style='color: green;'>```DirectionalLight = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const DirectionalLight: crate::q_abstract_light::Type =
            crate::q_abstract_light::Type(1);
        /// C++ enum variant: <span style='color: green;'>```SpotLight = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const SpotLight: crate::q_abstract_light::Type = crate::q_abstract_light::Type(2);
    }
}
/// <p>Encapsulate a <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> object in a Qt 3D scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAbstractLight```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate a <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> object in a Qt 3D scene.</p></div>
#[repr(C)]
pub struct QAbstractLight {
    _unused: u8,
}
impl QAbstractLight {
    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractLight::setColor` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#color-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>color</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_color(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QColor,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setColor(QColor const &)\0"),
            )
        }
    }

    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractLight::setIntensity` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#intensity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>intensity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIntensity</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>intensityChanged</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_intensity(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setIntensity(float)\0"),
            )
        }
    }

    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractLight::colorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#color-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>color</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn color_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QColor,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2colorChanged(QColor const &)\0"),
            )
        }
    }

    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractLight::intensityChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#intensity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>intensity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIntensity</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>intensityChanged</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn intensity_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2intensityChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor Qt3DRender::QAbstractLight::color() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#color-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>color</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn color(&self) -> ::cpp_core::CppBox<::qt_gui::QColor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_color(
                self as *const crate::QAbstractLight,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QAbstractLight::intensity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#intensity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>intensity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIntensity</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>intensityChanged</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn intensity(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_intensity(
            self as *const crate::QAbstractLight,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QAbstractLight::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_metaObject(
                self as *const crate::QAbstractLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QAbstractLight::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_qt_metacall(
            self as *const crate::QAbstractLight as *mut crate::QAbstractLight,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QAbstractLight::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_qt_metacast(
            self as *const crate::QAbstractLight as *mut crate::QAbstractLight,
            arg1,
        )
    }

    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractLight::setColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#color-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> color.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>color</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_color(
        &self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QColor>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_setColor(
            self as *const crate::QAbstractLight as *mut crate::QAbstractLight,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QColor>>::cast_into(color)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractLight::setIntensity(float intensity)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#intensity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html">QAbstractLight</a> intensity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>intensity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIntensity</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>intensityChanged</b></span>(float <i>intensity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_intensity(&self, intensity: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_setIntensity(
            self as *const crate::QAbstractLight as *mut crate::QAbstractLight,
            intensity,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractLight::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractLight::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Contains the type of light.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight::Type Qt3DRender::QAbstractLight::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#type-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Contains the type of light.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Type </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#type">type</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_abstract_light::Type {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_type(
            self as *const crate::QAbstractLight,
        )
    }
}

/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">QTextureImageData</a> stores data representing a texture.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureImageData```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">QTextureImageData</a> stores data representing a texture.</p></div>
#[repr(C)]
pub struct QTextureImageData {
    _unused: u8,
}
impl QTextureImageData {
    /// <p>Remove stored texture data and return the object to its initial state</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::cleanup()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#cleanup">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove stored texture data and return the object to its initial state</p></div>
    #[inline(always)]
    pub unsafe fn cleanup(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_cleanup(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
        )
    }

    /// <p>Copy-assignment operator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImageData& Qt3DRender::QTextureImageData::operator=(const Qt3DRender::QTextureImageData& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy-assignment operator.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureImageData>>,
    ) -> ::cpp_core::Ref<crate::QTextureImageData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_operator_(
                self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureImageData>>::cast_into(other)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QTextureImageData::data(int layer = …, int face = …, int mipmapLevel = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_3a(
        &self,
        layer: ::std::os::raw::c_int,
        face: ::std::os::raw::c_int,
        mipmap_level: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_data(
                self as *const crate::QTextureImageData,
                layer,
                face,
                mipmap_level,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QTextureImageData::data(int layer = …, int face = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_2a(
        &self,
        layer: ::std::os::raw::c_int,
        face: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_data1(
                self as *const crate::QTextureImageData,
                layer,
                face,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QTextureImageData::data(int layer = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_1a(
        &self,
        layer: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_data2(
                self as *const crate::QTextureImageData,
                layer,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QTextureImageData::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the raw image data for the texture at layer <i>layer</i>, face <i>face</i> and mipmapLevel <i>mipmapLevel</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_0a(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_data3(
                self as *const crate::QTextureImageData,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the depth of the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureImageData::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#depth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the depth of the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setDepth">setDepth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_depth(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns the number of faces in the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureImageData::faces() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#faces">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of faces in the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setFaces">setFaces</a>().</p></div>
    #[inline(always)]
    pub unsafe fn faces(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_faces(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns the format of the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::TextureFormat Qt3DRender::QTextureImageData::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the format of the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> ::qt_gui::q_opengl_texture::TextureFormat {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_format(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns the height of the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureImageData::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the height of the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setHeight">setHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_height(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns true if the stored texture is in a compressed format</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QTextureImageData::isCompressed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#isCompressed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if the stored texture is in a compressed format</p></div>
    #[inline(always)]
    pub unsafe fn is_compressed(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_isCompressed(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns the number of layers in the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureImageData::layers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#layers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of layers in the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setLayers">setLayers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn layers(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_layers(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns the number of mip levels in the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureImageData::mipLevels() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#mipLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of mip levels in the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setMipLevels">setMipLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn mip_levels(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_mipLevels(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">Qt3DRender::QTextureImageData</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureImageData::QTextureImageData()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#QTextureImageData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">Qt3DRender::QTextureImageData</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextureImageData> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_QTextureImageData() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">QTextureImageData</a> stores data representing a texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureImageData::QTextureImageData(const Qt3DRender::QTextureImageData& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">QTextureImageData</a> stores data representing a texture.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureImageData>>,
    ) -> ::cpp_core::CppBox<crate::QTextureImageData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_QTextureImageData1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureImageData>>::cast_into(other)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the pixel format of the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::PixelFormat Qt3DRender::QTextureImageData::pixelFormat() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#pixelFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel format of the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setPixelFormat">setPixelFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixel_format(&self) -> ::qt_gui::q_opengl_texture::PixelFormat {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_pixelFormat(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns the pixel type of the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::PixelType Qt3DRender::QTextureImageData::pixelType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#pixelType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the pixel type of the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setPixelType">setPixelType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pixel_type(&self) -> ::qt_gui::q_opengl_texture::PixelType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_pixelType(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Store the data <i>data</i> with blocksize <i>blockSize</i> and if the data to be stored is compressed <i>isCompressed</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setData(const QByteArray& data, int blockSize, bool isCompressed = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Store the data <i>data</i> with blocksize <i>blockSize</i> and if the data to be stored is compressed <i>isCompressed</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#data">data</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_3a(
        &self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        block_size: ::std::os::raw::c_int,
        is_compressed: bool,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setData(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
            block_size,
            is_compressed,
        )
    }

    /// <p>Store the data <i>data</i> with blocksize <i>blockSize</i> and if the data to be stored is compressed <i>isCompressed</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setData(const QByteArray& data, int blockSize)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Store the data <i>data</i> with blocksize <i>blockSize</i> and if the data to be stored is compressed <i>isCompressed</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#data">data</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data_2a(
        &self,
        data: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
        block_size: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setData1(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(data)
                .as_raw_ptr(),
            block_size,
        )
    }

    /// <p>Sets the depth to <i>depth</i>. <i>setDepth</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setDepth(int depth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setDepth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the depth to <i>depth</i>. <i>setDepth</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#depth">depth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_depth(&self, depth: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setDepth(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            depth,
        )
    }

    /// <p>Sets the faces to <i>faces</i>. <i>setFaces</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setFaces(int faces)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setFaces">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the faces to <i>faces</i>. <i>setFaces</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#faces">faces</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_faces(&self, faces: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setFaces(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            faces,
        )
    }

    /// <p>Sets the format to <i>format</i>. <i></i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setFormat(QOpenGLTexture::TextureFormat format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the format to <i>format</i>. <i></i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(&self, format: ::qt_gui::q_opengl_texture::TextureFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setFormat(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            format,
        )
    }

    /// <p>Sets the height to <i>height</i>. <i>setHeight</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setHeight(int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the height to <i>height</i>. <i>setHeight</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_height(&self, height: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setHeight(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            height,
        )
    }

    /// <p>Copies the image <i>image</i> as raw data within this object</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setImage(const QImage& arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copies the image <i>image</i> as raw data within this object</p></div>
    #[inline(always)]
    pub unsafe fn set_image(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QImage>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setImage(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QImage>>::cast_into(arg1).as_raw_ptr(),
        )
    }

    /// <p>Sets the layers to <i>layers</i>. <i>setLayers</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setLayers(int layers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setLayers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the layers to <i>layers</i>. <i>setLayers</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#layers">layers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_layers(&self, layers: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setLayers(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            layers,
        )
    }

    /// <p>Sets the mip levels to <i>mipLevels</i>. <i>setMipLevels</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setMipLevels(int mipLevels)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setMipLevels">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the mip levels to <i>mipLevels</i>. <i>setMipLevels</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#mipLevels">mipLevels</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mip_levels(&self, mip_levels: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setMipLevels(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            mip_levels,
        )
    }

    /// <p>Sets the pixel format to <i>pixelFormat</i>. <i>setPixelFormat</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setPixelFormat(QOpenGLTexture::PixelFormat pixelFormat)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setPixelFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pixel format to <i>pixelFormat</i>. <i>setPixelFormat</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#pixelFormat">pixelFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_format(&self, pixel_format: ::qt_gui::q_opengl_texture::PixelFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setPixelFormat(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            pixel_format,
        )
    }

    /// <p>Sets the pixel type to <i>pixelType</i> <i>setPixelType</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setPixelType(QOpenGLTexture::PixelType pixelType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setPixelType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the pixel type to <i>pixelType</i> <i>setPixelType</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#pixelType">pixelType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_pixel_type(&self, pixel_type: ::qt_gui::q_opengl_texture::PixelType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setPixelType(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            pixel_type,
        )
    }

    /// <p>Sets the target to <i>target</i>. <i>target</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setTarget(QOpenGLTexture::Target target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setTarget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the target to <i>target</i>. <i>target</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#target">target</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_target(&self, target: ::qt_gui::q_opengl_texture::Target) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setTarget(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            target,
        )
    }

    /// <p>Sets the width to <i>width</i>. <i>setWidth</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureImageData::setWidth(int width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the width to <i>width</i>. <i>setWidth</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&self, width: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_setWidth(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
            width,
        )
    }

    /// <p>Returns the target for the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QOpenGLTexture::Target Qt3DRender::QTextureImageData::target() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#target">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the target for the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setTarget">setTarget</a>().</p></div>
    #[inline(always)]
    pub unsafe fn target(&self) -> ::qt_gui::q_opengl_texture::Target {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_target(
            self as *const crate::QTextureImageData,
        )
    }

    /// <p>Returns the width of the stored texture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureImageData::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the width of the stored texture</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html#setWidth">setWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_width(
            self as *const crate::QTextureImageData,
        )
    }
}

pub mod q_abstract_texture {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QAbstractTexture```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Status```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Status(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Status {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Status(value)
        }
    }

    impl From<Status> for ::std::os::raw::c_int {
        fn from(value: Status) -> Self {
            value.0
        }
    }

    impl Status {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Status {
        /// C++ enum variant: <span style='color: green;'>```None = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const None: crate::q_abstract_texture::Status = crate::q_abstract_texture::Status(0);
        /// C++ enum variant: <span style='color: green;'>```Loading = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Loading: crate::q_abstract_texture::Status = crate::q_abstract_texture::Status(1);
        /// C++ enum variant: <span style='color: green;'>```Ready = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Ready: crate::q_abstract_texture::Status = crate::q_abstract_texture::Status(2);
        /// C++ enum variant: <span style='color: green;'>```Error = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const Error: crate::q_abstract_texture::Status = crate::q_abstract_texture::Status(3);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Target```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Target(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Target {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Target(value)
        }
    }

    impl From<Target> for ::std::os::raw::c_int {
        fn from(value: Target) -> Self {
            value.0
        }
    }

    impl Target {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Target {
        /// C++ enum variant: <span style='color: green;'>```TargetAutomatic = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const TargetAutomatic: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(0);
        /// C++ enum variant: <span style='color: green;'>```Target1D = 3552```</span>
        #[allow(non_upper_case_globals)]
        pub const Target1D: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(3552);
        /// C++ enum variant: <span style='color: green;'>```Target1DArray = 35864```</span>
        #[allow(non_upper_case_globals)]
        pub const Target1DArray: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(35864);
        /// C++ enum variant: <span style='color: green;'>```Target2D = 3553```</span>
        #[allow(non_upper_case_globals)]
        pub const Target2D: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(3553);
        /// C++ enum variant: <span style='color: green;'>```Target2DArray = 35866```</span>
        #[allow(non_upper_case_globals)]
        pub const Target2DArray: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(35866);
        /// C++ enum variant: <span style='color: green;'>```Target3D = 32879```</span>
        #[allow(non_upper_case_globals)]
        pub const Target3D: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(32879);
        /// C++ enum variant: <span style='color: green;'>```TargetCubeMap = 34067```</span>
        #[allow(non_upper_case_globals)]
        pub const TargetCubeMap: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(34067);
        /// C++ enum variant: <span style='color: green;'>```TargetCubeMapArray = 36873```</span>
        #[allow(non_upper_case_globals)]
        pub const TargetCubeMapArray: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(36873);
        /// C++ enum variant: <span style='color: green;'>```Target2DMultisample = 37120```</span>
        #[allow(non_upper_case_globals)]
        pub const Target2DMultisample: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(37120);
        /// C++ enum variant: <span style='color: green;'>```Target2DMultisampleArray = 37122```</span>
        #[allow(non_upper_case_globals)]
        pub const Target2DMultisampleArray: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(37122);
        /// C++ enum variant: <span style='color: green;'>```TargetRectangle = 34037```</span>
        #[allow(non_upper_case_globals)]
        pub const TargetRectangle: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(34037);
        /// C++ enum variant: <span style='color: green;'>```TargetBuffer = 35882```</span>
        #[allow(non_upper_case_globals)]
        pub const TargetBuffer: crate::q_abstract_texture::Target =
            crate::q_abstract_texture::Target(35882);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::TextureFormat```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct TextureFormat(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for TextureFormat {
        fn from(value: ::std::os::raw::c_int) -> Self {
            TextureFormat(value)
        }
    }

    impl From<TextureFormat> for ::std::os::raw::c_int {
        fn from(value: TextureFormat) -> Self {
            value.0
        }
    }

    impl TextureFormat {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl TextureFormat {
        /// C++ enum variant: <span style='color: green;'>```NoFormat = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoFormat: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(0);
        /// C++ enum variant: <span style='color: green;'>```Automatic = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Automatic: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(1);
        /// C++ enum variant: <span style='color: green;'>```R8_UNorm = 33321```</span>
        #[allow(non_upper_case_globals)]
        pub const R8UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33321);
        /// C++ enum variant: <span style='color: green;'>```RG8_UNorm = 33323```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33323);
        /// C++ enum variant: <span style='color: green;'>```RGB8_UNorm = 32849```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB8UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(32849);
        /// C++ enum variant: <span style='color: green;'>```RGBA8_UNorm = 32856```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(32856);
        /// C++ enum variant: <span style='color: green;'>```R16_UNorm = 33322```</span>
        #[allow(non_upper_case_globals)]
        pub const R16UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33322);
        /// C++ enum variant: <span style='color: green;'>```RG16_UNorm = 33324```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33324);
        /// C++ enum variant: <span style='color: green;'>```RGB16_UNorm = 32852```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB16UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(32852);
        /// C++ enum variant: <span style='color: green;'>```RGBA16_UNorm = 32859```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16UNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(32859);
        /// C++ enum variant: <span style='color: green;'>```R8_SNorm = 36756```</span>
        #[allow(non_upper_case_globals)]
        pub const R8SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36756);
        /// C++ enum variant: <span style='color: green;'>```RG8_SNorm = 36757```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36757);
        /// C++ enum variant: <span style='color: green;'>```RGB8_SNorm = 36758```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB8SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36758);
        /// C++ enum variant: <span style='color: green;'>```RGBA8_SNorm = 36759```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36759);
        /// C++ enum variant: <span style='color: green;'>```R16_SNorm = 36760```</span>
        #[allow(non_upper_case_globals)]
        pub const R16SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36760);
        /// C++ enum variant: <span style='color: green;'>```RG16_SNorm = 36761```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36761);
        /// C++ enum variant: <span style='color: green;'>```RGB16_SNorm = 36762```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB16SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36762);
        /// C++ enum variant: <span style='color: green;'>```RGBA16_SNorm = 36763```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16SNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36763);
        /// C++ enum variant: <span style='color: green;'>```R8U = 33330```</span>
        #[allow(non_upper_case_globals)]
        pub const R8U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33330);
        /// C++ enum variant: <span style='color: green;'>```RG8U = 33336```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33336);
        /// C++ enum variant: <span style='color: green;'>```RGB8U = 36221```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB8U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36221);
        /// C++ enum variant: <span style='color: green;'>```RGBA8U = 36220```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36220);
        /// C++ enum variant: <span style='color: green;'>```R16U = 33332```</span>
        #[allow(non_upper_case_globals)]
        pub const R16U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33332);
        /// C++ enum variant: <span style='color: green;'>```RG16U = 33338```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33338);
        /// C++ enum variant: <span style='color: green;'>```RGB16U = 36215```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB16U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36215);
        /// C++ enum variant: <span style='color: green;'>```RGBA16U = 36214```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36214);
        /// C++ enum variant: <span style='color: green;'>```R32U = 33334```</span>
        #[allow(non_upper_case_globals)]
        pub const R32U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33334);
        /// C++ enum variant: <span style='color: green;'>```RG32U = 33340```</span>
        #[allow(non_upper_case_globals)]
        pub const RG32U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33340);
        /// C++ enum variant: <span style='color: green;'>```RGB32U = 36209```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB32U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36209);
        /// C++ enum variant: <span style='color: green;'>```RGBA32U = 36208```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA32U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36208);
        /// C++ enum variant: <span style='color: green;'>```R8I = 33329```</span>
        #[allow(non_upper_case_globals)]
        pub const R8I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33329);
        /// C++ enum variant: <span style='color: green;'>```RG8I = 33335```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33335);
        /// C++ enum variant: <span style='color: green;'>```RGB8I = 36239```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB8I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36239);
        /// C++ enum variant: <span style='color: green;'>```RGBA8I = 36238```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36238);
        /// C++ enum variant: <span style='color: green;'>```R16I = 33331```</span>
        #[allow(non_upper_case_globals)]
        pub const R16I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33331);
        /// C++ enum variant: <span style='color: green;'>```RG16I = 33337```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33337);
        /// C++ enum variant: <span style='color: green;'>```RGB16I = 36233```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB16I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36233);
        /// C++ enum variant: <span style='color: green;'>```RGBA16I = 36232```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36232);
        /// C++ enum variant: <span style='color: green;'>```R32I = 33333```</span>
        #[allow(non_upper_case_globals)]
        pub const R32I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33333);
        /// C++ enum variant: <span style='color: green;'>```RG32I = 33339```</span>
        #[allow(non_upper_case_globals)]
        pub const RG32I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33339);
        /// C++ enum variant: <span style='color: green;'>```RGB32I = 36227```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB32I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36227);
        /// C++ enum variant: <span style='color: green;'>```RGBA32I = 36226```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA32I: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36226);
        /// C++ enum variant: <span style='color: green;'>```R16F = 33325```</span>
        #[allow(non_upper_case_globals)]
        pub const R16F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33325);
        /// C++ enum variant: <span style='color: green;'>```RG16F = 33327```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33327);
        /// C++ enum variant: <span style='color: green;'>```RGB16F = 34843```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB16F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(34843);
        /// C++ enum variant: <span style='color: green;'>```RGBA16F = 34842```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(34842);
        /// C++ enum variant: <span style='color: green;'>```R32F = 33326```</span>
        #[allow(non_upper_case_globals)]
        pub const R32F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33326);
        /// C++ enum variant: <span style='color: green;'>```RG32F = 33328```</span>
        #[allow(non_upper_case_globals)]
        pub const RG32F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33328);
        /// C++ enum variant: <span style='color: green;'>```RGB32F = 34837```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB32F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(34837);
        /// C++ enum variant: <span style='color: green;'>```RGBA32F = 34836```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA32F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(34836);
        /// C++ enum variant: <span style='color: green;'>```RGB9E5 = 35901```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB9E5: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35901);
        /// C++ enum variant: <span style='color: green;'>```RG11B10F = 35898```</span>
        #[allow(non_upper_case_globals)]
        pub const RG11B10F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35898);
        /// C++ enum variant: <span style='color: green;'>```RG3B2 = 10768```</span>
        #[allow(non_upper_case_globals)]
        pub const RG3B2: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(10768);
        /// C++ enum variant: <span style='color: green;'>```R5G6B5 = 36194```</span>
        #[allow(non_upper_case_globals)]
        pub const R5G6B5: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36194);
        /// C++ enum variant: <span style='color: green;'>```RGB5A1 = 32855```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB5A1: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(32855);
        /// C++ enum variant: <span style='color: green;'>```RGBA4 = 32854```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA4: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(32854);
        /// C++ enum variant: <span style='color: green;'>```RGB10A2 = 36975```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB10A2: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36975);
        /// C++ enum variant: <span style='color: green;'>```D16 = 33189```</span>
        #[allow(non_upper_case_globals)]
        pub const D16: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33189);
        /// C++ enum variant: <span style='color: green;'>```D24 = 33190```</span>
        #[allow(non_upper_case_globals)]
        pub const D24: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33190);
        /// C++ enum variant: <span style='color: green;'>```D24S8 = 35056```</span>
        #[allow(non_upper_case_globals)]
        pub const D24S8: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35056);
        /// C++ enum variant: <span style='color: green;'>```D32 = 33191```</span>
        #[allow(non_upper_case_globals)]
        pub const D32: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33191);
        /// C++ enum variant: <span style='color: green;'>```D32F = 36012```</span>
        #[allow(non_upper_case_globals)]
        pub const D32F: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36012);
        /// C++ enum variant: <span style='color: green;'>```D32FS8X24 = 36013```</span>
        #[allow(non_upper_case_globals)]
        pub const D32FS8X24: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36013);
        /// C++ enum variant: <span style='color: green;'>```RGB_DXT1 = 33776```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBDXT1: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33776);
        /// C++ enum variant: <span style='color: green;'>```RGBA_DXT1 = 33777```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBADXT1: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33777);
        /// C++ enum variant: <span style='color: green;'>```RGBA_DXT3 = 33778```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBADXT3: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33778);
        /// C++ enum variant: <span style='color: green;'>```RGBA_DXT5 = 33779```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBADXT5: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(33779);
        /// C++ enum variant: <span style='color: green;'>```R_ATI1N_UNorm = 36283```</span>
        #[allow(non_upper_case_globals)]
        pub const RATI1NUNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36283);
        /// C++ enum variant: <span style='color: green;'>```R_ATI1N_SNorm = 36284```</span>
        #[allow(non_upper_case_globals)]
        pub const RATI1NSNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36284);
        /// C++ enum variant: <span style='color: green;'>```RG_ATI2N_UNorm = 36285```</span>
        #[allow(non_upper_case_globals)]
        pub const RGATI2NUNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36285);
        /// C++ enum variant: <span style='color: green;'>```RG_ATI2N_SNorm = 36286```</span>
        #[allow(non_upper_case_globals)]
        pub const RGATI2NSNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36286);
        /// C++ enum variant: <span style='color: green;'>```RGB_BP_UNSIGNED_FLOAT = 36495```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBBPUNSIGNEDFLOAT: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36495);
        /// C++ enum variant: <span style='color: green;'>```RGB_BP_SIGNED_FLOAT = 36494```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBBPSIGNEDFLOAT: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36494);
        /// C++ enum variant: <span style='color: green;'>```RGB_BP_UNorm = 36492```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBBPUNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36492);
        /// C++ enum variant: <span style='color: green;'>```R11_EAC_UNorm = 37488```</span>
        #[allow(non_upper_case_globals)]
        pub const R11EACUNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37488);
        /// C++ enum variant: <span style='color: green;'>```R11_EAC_SNorm = 37489```</span>
        #[allow(non_upper_case_globals)]
        pub const R11EACSNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37489);
        /// C++ enum variant: <span style='color: green;'>```RG11_EAC_UNorm = 37490```</span>
        #[allow(non_upper_case_globals)]
        pub const RG11EACUNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37490);
        /// C++ enum variant: <span style='color: green;'>```RG11_EAC_SNorm = 37491```</span>
        #[allow(non_upper_case_globals)]
        pub const RG11EACSNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37491);
        /// C++ enum variant: <span style='color: green;'>```RGB8_ETC2 = 37492```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB8ETC2: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37492);
        /// C++ enum variant: <span style='color: green;'>```SRGB8_ETC2 = 37493```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGB8ETC2: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37493);
        /// C++ enum variant: <span style='color: green;'>```RGB8_PunchThrough_Alpha1_ETC2 = 37494```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB8PunchThroughAlpha1ETC2: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37494);
        /// C++ enum variant: <span style='color: green;'>```SRGB8_PunchThrough_Alpha1_ETC2 = 37495```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGB8PunchThroughAlpha1ETC2: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37495);
        /// C++ enum variant: <span style='color: green;'>```RGBA8_ETC2_EAC = 37496```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8ETC2EAC: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37496);
        /// C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8_ETC2_EAC = 37497```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8ETC2EAC: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(37497);
        /// C++ enum variant: <span style='color: green;'>```RGB8_ETC1 = 36196```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB8ETC1: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36196);
        /// C++ enum variant: <span style='color: green;'>```SRGB8 = 35905```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGB8: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35905);
        /// C++ enum variant: <span style='color: green;'>```SRGB8_Alpha8 = 35907```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGB8Alpha8: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35907);
        /// C++ enum variant: <span style='color: green;'>```SRGB_DXT1 = 35916```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGBDXT1: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35916);
        /// C++ enum variant: <span style='color: green;'>```SRGB_Alpha_DXT1 = 35917```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGBAlphaDXT1: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35917);
        /// C++ enum variant: <span style='color: green;'>```SRGB_Alpha_DXT3 = 35918```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGBAlphaDXT3: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35918);
        /// C++ enum variant: <span style='color: green;'>```SRGB_Alpha_DXT5 = 35919```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGBAlphaDXT5: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(35919);
        /// C++ enum variant: <span style='color: green;'>```SRGB_BP_UNorm = 36493```</span>
        #[allow(non_upper_case_globals)]
        pub const SRGBBPUNorm: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36493);
        /// C++ enum variant: <span style='color: green;'>```DepthFormat = 6402```</span>
        #[allow(non_upper_case_globals)]
        pub const DepthFormat: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(6402);
        /// C++ enum variant: <span style='color: green;'>```AlphaFormat = 6406```</span>
        #[allow(non_upper_case_globals)]
        pub const AlphaFormat: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(6406);
        /// C++ enum variant: <span style='color: green;'>```RGBFormat = 6407```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBFormat: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(6407);
        /// C++ enum variant: <span style='color: green;'>```RGBAFormat = 6408```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBAFormat: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(6408);
        /// C++ enum variant: <span style='color: green;'>```LuminanceFormat = 6409```</span>
        #[allow(non_upper_case_globals)]
        pub const LuminanceFormat: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(6409);
        /// C++ enum variant: <span style='color: green;'>```LuminanceAlphaFormat = 6410```</span>
        #[allow(non_upper_case_globals)]
        pub const LuminanceAlphaFormat: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(6410);
        /// C++ enum variant: <span style='color: green;'>```RGB10A2 = 32857```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB10A2_2: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(32857);
        /// C++ enum variant: <span style='color: green;'>```RGB10A2U = 36975```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB10A2U: crate::q_abstract_texture::TextureFormat =
            crate::q_abstract_texture::TextureFormat(36975);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Filter```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Filter(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Filter {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Filter(value)
        }
    }

    impl From<Filter> for ::std::os::raw::c_int {
        fn from(value: Filter) -> Self {
            value.0
        }
    }

    impl Filter {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Filter {
        /// C++ enum variant: <span style='color: green;'>```Nearest = 9728```</span>
        #[allow(non_upper_case_globals)]
        pub const Nearest: crate::q_abstract_texture::Filter =
            crate::q_abstract_texture::Filter(9728);
        /// C++ enum variant: <span style='color: green;'>```Linear = 9729```</span>
        #[allow(non_upper_case_globals)]
        pub const Linear: crate::q_abstract_texture::Filter =
            crate::q_abstract_texture::Filter(9729);
        /// C++ enum variant: <span style='color: green;'>```NearestMipMapNearest = 9984```</span>
        #[allow(non_upper_case_globals)]
        pub const NearestMipMapNearest: crate::q_abstract_texture::Filter =
            crate::q_abstract_texture::Filter(9984);
        /// C++ enum variant: <span style='color: green;'>```NearestMipMapLinear = 9986```</span>
        #[allow(non_upper_case_globals)]
        pub const NearestMipMapLinear: crate::q_abstract_texture::Filter =
            crate::q_abstract_texture::Filter(9986);
        /// C++ enum variant: <span style='color: green;'>```LinearMipMapNearest = 9985```</span>
        #[allow(non_upper_case_globals)]
        pub const LinearMipMapNearest: crate::q_abstract_texture::Filter =
            crate::q_abstract_texture::Filter(9985);
        /// C++ enum variant: <span style='color: green;'>```LinearMipMapLinear = 9987```</span>
        #[allow(non_upper_case_globals)]
        pub const LinearMipMapLinear: crate::q_abstract_texture::Filter =
            crate::q_abstract_texture::Filter(9987);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::CubeMapFace```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CubeMapFace(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CubeMapFace {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CubeMapFace(value)
        }
    }

    impl From<CubeMapFace> for ::std::os::raw::c_int {
        fn from(value: CubeMapFace) -> Self {
            value.0
        }
    }

    impl CubeMapFace {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CubeMapFace {
        /// C++ enum variant: <span style='color: green;'>```CubeMapPositiveX = 34069```</span>
        #[allow(non_upper_case_globals)]
        pub const CubeMapPositiveX: crate::q_abstract_texture::CubeMapFace =
            crate::q_abstract_texture::CubeMapFace(34069);
        /// C++ enum variant: <span style='color: green;'>```CubeMapNegativeX = 34070```</span>
        #[allow(non_upper_case_globals)]
        pub const CubeMapNegativeX: crate::q_abstract_texture::CubeMapFace =
            crate::q_abstract_texture::CubeMapFace(34070);
        /// C++ enum variant: <span style='color: green;'>```CubeMapPositiveY = 34071```</span>
        #[allow(non_upper_case_globals)]
        pub const CubeMapPositiveY: crate::q_abstract_texture::CubeMapFace =
            crate::q_abstract_texture::CubeMapFace(34071);
        /// C++ enum variant: <span style='color: green;'>```CubeMapNegativeY = 34072```</span>
        #[allow(non_upper_case_globals)]
        pub const CubeMapNegativeY: crate::q_abstract_texture::CubeMapFace =
            crate::q_abstract_texture::CubeMapFace(34072);
        /// C++ enum variant: <span style='color: green;'>```CubeMapPositiveZ = 34073```</span>
        #[allow(non_upper_case_globals)]
        pub const CubeMapPositiveZ: crate::q_abstract_texture::CubeMapFace =
            crate::q_abstract_texture::CubeMapFace(34073);
        /// C++ enum variant: <span style='color: green;'>```CubeMapNegativeZ = 34074```</span>
        #[allow(non_upper_case_globals)]
        pub const CubeMapNegativeZ: crate::q_abstract_texture::CubeMapFace =
            crate::q_abstract_texture::CubeMapFace(34074);
        /// C++ enum variant: <span style='color: green;'>```AllFaces = 34075```</span>
        #[allow(non_upper_case_globals)]
        pub const AllFaces: crate::q_abstract_texture::CubeMapFace =
            crate::q_abstract_texture::CubeMapFace(34075);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonFunction```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ComparisonFunction(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ComparisonFunction {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ComparisonFunction(value)
        }
    }

    impl From<ComparisonFunction> for ::std::os::raw::c_int {
        fn from(value: ComparisonFunction) -> Self {
            value.0
        }
    }

    impl ComparisonFunction {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ComparisonFunction {
        /// C++ enum variant: <span style='color: green;'>```CompareLessEqual = 515```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareLessEqual: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(515);
        /// C++ enum variant: <span style='color: green;'>```CompareGreaterEqual = 518```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareGreaterEqual: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(518);
        /// C++ enum variant: <span style='color: green;'>```CompareLess = 513```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareLess: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(513);
        /// C++ enum variant: <span style='color: green;'>```CompareGreater = 516```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareGreater: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(516);
        /// C++ enum variant: <span style='color: green;'>```CompareEqual = 514```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareEqual: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(514);
        /// C++ enum variant: <span style='color: green;'>```CommpareNotEqual = 517```</span>
        #[allow(non_upper_case_globals)]
        pub const CommpareNotEqual: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(517);
        /// C++ enum variant: <span style='color: green;'>```CompareAlways = 519```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareAlways: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(519);
        /// C++ enum variant: <span style='color: green;'>```CompareNever = 512```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareNever: crate::q_abstract_texture::ComparisonFunction =
            crate::q_abstract_texture::ComparisonFunction(512);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ComparisonMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ComparisonMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ComparisonMode(value)
        }
    }

    impl From<ComparisonMode> for ::std::os::raw::c_int {
        fn from(value: ComparisonMode) -> Self {
            value.0
        }
    }

    impl ComparisonMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ComparisonMode {
        /// C++ enum variant: <span style='color: green;'>```CompareRefToTexture = 34894```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareRefToTexture: crate::q_abstract_texture::ComparisonMode =
            crate::q_abstract_texture::ComparisonMode(34894);
        /// C++ enum variant: <span style='color: green;'>```CompareNone = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const CompareNone: crate::q_abstract_texture::ComparisonMode =
            crate::q_abstract_texture::ComparisonMode(0);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractTexture::HandleType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct HandleType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for HandleType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            HandleType(value)
        }
    }

    impl From<HandleType> for ::std::os::raw::c_int {
        fn from(value: HandleType) -> Self {
            value.0
        }
    }

    impl HandleType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl HandleType {
        /// C++ enum variant: <span style='color: green;'>```NoHandle = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoHandle: crate::q_abstract_texture::HandleType =
            crate::q_abstract_texture::HandleType(0);
        /// C++ enum variant: <span style='color: green;'>```OpenGLTextureId = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const OpenGLTextureId: crate::q_abstract_texture::HandleType =
            crate::q_abstract_texture::HandleType(1);
    }
}
/// <p>A base class to be used to provide textures.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAbstractTexture```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A base class to be used to provide textures.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> class shouldn't be used directly but rather through one of its subclasses. Each subclass implements a given texture target (2D, 2DArray, 3D, CubeMap ...) Each subclass provides a set of functors for each layer, cube map face and mipmap level. In turn the backend uses those functor to properly fill a corresponding OpenGL texture with data.</p></div>
#[repr(C)]
pub struct QAbstractTexture {
    _unused: u8,
}
impl QAbstractTexture {
    /// <p>Set the texture format to <i>format</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setFormat` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the texture format to <i>format</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format-prop">format</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format">format</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_format(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_abstract_texture::TextureFormat,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFormat(Qt3DRender::QAbstractTexture::TextureFormat)\0",
                ),
            )
        }
    }

    /// <p>Boolean parameter <i>gen</i> sets a flag indicating whether the texture provider should generate mipmaps or not.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setGenerateMipMaps` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setGenerateMipMaps">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Boolean parameter <i>gen</i> sets a flag indicating whether the texture provider should generate mipmaps or not.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#generateMipMaps-prop">generateMipMaps</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#generateMipMaps-prop">generateMipMaps</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_generate_mip_maps(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setGenerateMipMaps(bool)\0"),
            )
        }
    }

    /// <p>Set the width of the texture provider to <i>width</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setWidth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the width of the texture provider to <i>width</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width-prop">width</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width">width</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_width(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWidth(int)\0"),
            )
        }
    }

    /// <p>Set the height to <i>height</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setHeight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the height to <i>height</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height-prop">height</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height">height</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_height(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setHeight(int)\0"),
            )
        }
    }

    /// <p>Set the depth of the texture to <i>depth</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setDepth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setDepth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the depth of the texture to <i>depth</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth-prop">depth</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth">depth</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_depth(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDepth(int)\0"),
            )
        }
    }

    /// <p>Set the minification filter to the specified value <i>f</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setMinificationFilter` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMinificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the minification filter to the specified value <i>f</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#minificationFilter-prop">minificationFilter</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#minificationFilter-prop">minificationFilter</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_minification_filter(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_abstract_texture::Filter,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setMinificationFilter(Qt3DRender::QAbstractTexture::Filter)\0",
                ),
            )
        }
    }

    /// <p>Set the magnification filter to <i>f</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setMagnificationFilter` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMagnificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the magnification filter to <i>f</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#magnificationFilter-prop">magnificationFilter</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#magnificationFilter-prop">magnificationFilter</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_magnification_filter(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_abstract_texture::Filter,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setMagnificationFilter(Qt3DRender::QAbstractTexture::Filter)\0",
                ),
            )
        }
    }

    /// <p>Sets the maximum anisotropy to <i>anisotropy</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setMaximumAnisotropy` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMaximumAnisotropy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the maximum anisotropy to <i>anisotropy</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy-prop">maximumAnisotropy</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy">maximumAnisotropy</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_maximum_anisotropy(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMaximumAnisotropy(float)\0"),
            )
        }
    }

    /// <p>Set the comparison function to <i>function</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setComparisonFunction` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonFunction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the comparison function to <i>function</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction-prop">comparisonFunction</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction">comparisonFunction</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_comparison_function(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_abstract_texture::ComparisonFunction,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setComparisonFunction(Qt3DRender::QAbstractTexture::ComparisonFunction)\0",
                ),
            )
        }
    }

    /// <p>Set the comparison mode to <i>mode</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setComparisonMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the comparison mode to <i>mode</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode-prop">comparisonMode</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode">comparisonMode</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_comparison_mode(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_abstract_texture::ComparisonMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setComparisonMode(Qt3DRender::QAbstractTexture::ComparisonMode)\0",
                ),
            )
        }
    }

    /// <p>Set the maximum layer count to <i>layers</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setLayers` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setLayers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the maximum layer count to <i>layers</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers-prop">layers</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers">layers</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_layers(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLayers(int)\0"),
            )
        }
    }

    /// <p>Set the number of samples per texel to <i>samples</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTexture::setSamples` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setSamples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the number of samples per texel to <i>samples</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples-prop">samples</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples">samples</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_samples(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSamples(int)\0"),
            )
        }
    }

    /// <p>Holds the format of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::formatChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the format of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> TextureFormat </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format">format</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setFormat">setFormat</a></b></span>(TextureFormat <i>format</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>formatChanged</b></span>(TextureFormat <i>format</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn format_changed(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::TextureFormat,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2formatChanged(Qt3DRender::QAbstractTexture::TextureFormat)\0",
                ),
            )
        }
    }

    /// <p>Holds the current status of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::statusChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current status of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#status">status</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn status_changed(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2statusChanged(Qt3DRender::QAbstractTexture::Status)\0",
                ),
            )
        }
    }

    /// <p>Holds whether the texture provider should auto generate mipmaps.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::generateMipMapsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#generateMipMaps-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the texture provider should auto generate mipmaps.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>generateMipMaps</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setGenerateMipMaps">setGenerateMipMaps</a></b></span>(bool <i>gen</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>generateMipMapsChanged</b></span>(bool <i>generateMipMaps</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn generate_mip_maps_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2generateMipMapsChanged(bool)\0"),
            )
        }
    }

    /// <p>Holds the width of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::widthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the width of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width">width</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setWidth">setWidth</a></b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn width_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2widthChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the height of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::heightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the height of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height">height</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setHeight">setHeight</a></b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn height_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2heightChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the depth of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::depthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the depth of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth">depth</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setDepth">setDepth</a></b></span>(int <i>depth</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthChanged</b></span>(int <i>depth</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn depth_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2depthChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the magnification filter of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::magnificationFilterChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#magnificationFilter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the magnification filter of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Filter </td><td class="memItemRight bottomAlign"><span class="name"><b>magnificationFilter</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMagnificationFilter">setMagnificationFilter</a></b></span>(Filter <i>f</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>magnificationFilterChanged</b></span>(Filter <i>magnificationFilter</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn magnification_filter_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_abstract_texture::Filter,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2magnificationFilterChanged(Qt3DRender::QAbstractTexture::Filter)\0",
                ),
            )
        }
    }

    /// <p>Holds the minification filter of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::minificationFilterChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#minificationFilter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the minification filter of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Filter </td><td class="memItemRight bottomAlign"><span class="name"><b>minificationFilter</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMinificationFilter">setMinificationFilter</a></b></span>(Filter <i>f</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minificationFilterChanged</b></span>(Filter <i>minificationFilter</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn minification_filter_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_abstract_texture::Filter,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2minificationFilterChanged(Qt3DRender::QAbstractTexture::Filter)\0",
                ),
            )
        }
    }

    /// <p>Holds the maximum anisotropy of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::maximumAnisotropyChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the maximum anisotropy of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy">maximumAnisotropy</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMaximumAnisotropy">setMaximumAnisotropy</a></b></span>(float <i>anisotropy</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumAnisotropyChanged</b></span>(float <i>maximumAnisotropy</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn maximum_anisotropy_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2maximumAnisotropyChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Holds the comparison function of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::comparisonFunctionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the comparison function of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ComparisonFunction </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction">comparisonFunction</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonFunction">setComparisonFunction</a></b></span>(ComparisonFunction <i>function</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonFunctionChanged</b></span>(ComparisonFunction <i>comparisonFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn comparison_function_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_abstract_texture::ComparisonFunction,)> {
        unsafe {
            ::qt_core::Signal::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2comparisonFunctionChanged(Qt3DRender::QAbstractTexture::ComparisonFunction)\0"))
        }
    }

    /// <p>Holds the comparison mode of the texture provider.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::comparisonModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the comparison mode of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ComparisonMode </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode">comparisonMode</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonMode">setComparisonMode</a></b></span>(ComparisonMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonModeChanged</b></span>(ComparisonMode <i>comparisonMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn comparison_mode_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_abstract_texture::ComparisonMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2comparisonModeChanged(Qt3DRender::QAbstractTexture::ComparisonMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the maximum layer count of the texture provider. By default, the maximum layer count is 1.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::layersChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the maximum layer count of the texture provider. By default, the maximum layer count is 1.</p>
    /// <p><b>Note: </b>this has a meaning only for texture providers that have 3D or array target formats.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers">layers</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setLayers">setLayers</a></b></span>(int <i>layers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layersChanged</b></span>(int <i>layers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn layers_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2layersChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the number of samples per texel for the texture provider. By default, the number of samples is 1.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTexture::samplesChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the number of samples per texel for the texture provider. By default, the number of samples is 1.</p>
    /// <p><b>Note: </b>this has a meaning only for texture providers that have multisample formats.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples">samples</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setSamples">setSamples</a></b></span>(int <i>samples</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>samplesChanged</b></span>(int <i>samples</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn samples_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2samplesChanged(int)\0"),
            )
        }
    }

    /// <p>Adds a new Qt3DCore::QAbstractTextureImage <i>textureImage</i> to the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::addTextureImage(Qt3DRender::QAbstractTextureImage* textureImage)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#addTextureImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a new Qt3DCore::QAbstractTextureImage <i>textureImage</i> to the texture provider.</p>
    /// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">Qt3DRender::QAbstractTextureImage</a> should never be shared between multiple <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">Qt3DRender::QAbstractTexture</a> instances.</p></div>
    #[inline(always)]
    pub unsafe fn add_texture_image(
        &self,
        texture_image: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTextureImage>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_addTextureImage(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTextureImage>>::cast_into(
                texture_image,
            )
            .as_raw_ptr() as *mut crate::QAbstractTextureImage,
        )
    }

    /// <p>Holds the comparison function of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonFunction Qt3DRender::QAbstractTexture::comparisonFunction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the comparison function of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ComparisonFunction </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction">comparisonFunction</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonFunction">setComparisonFunction</a></b></span>(ComparisonFunction <i>function</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonFunctionChanged</b></span>(ComparisonFunction <i>comparisonFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn comparison_function(&self) -> crate::q_abstract_texture::ComparisonFunction {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_comparisonFunction(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the comparison mode of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonMode Qt3DRender::QAbstractTexture::comparisonMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the comparison mode of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ComparisonMode </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode">comparisonMode</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonMode">setComparisonMode</a></b></span>(ComparisonMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonModeChanged</b></span>(ComparisonMode <i>comparisonMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn comparison_mode(&self) -> crate::q_abstract_texture::ComparisonMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_comparisonMode(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the depth of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QAbstractTexture::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the depth of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth">depth</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setDepth">setDepth</a></b></span>(int <i>depth</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthChanged</b></span>(int <i>depth</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_depth(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the format of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::TextureFormat Qt3DRender::QAbstractTexture::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the format of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> TextureFormat </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format">format</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setFormat">setFormat</a></b></span>(TextureFormat <i>format</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>formatChanged</b></span>(TextureFormat <i>format</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> crate::q_abstract_texture::TextureFormat {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_format(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds whether the texture provider should auto generate mipmaps.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QAbstractTexture::generateMipMaps() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#generateMipMaps-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the texture provider should auto generate mipmaps.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>generateMipMaps</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setGenerateMipMaps">setGenerateMipMaps</a></b></span>(bool <i>gen</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>generateMipMapsChanged</b></span>(bool <i>generateMipMaps</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn generate_mip_maps(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_generateMipMaps(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the current texture handle, if Qt 3D is using the OpenGL renderer, handle is a texture id integer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant Qt3DRender::QAbstractTexture::handle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current texture handle, if Qt 3D is using the OpenGL renderer, handle is a texture id integer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handle">handle</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleChanged</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_handle(
                self as *const crate::QAbstractTexture,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the current texture handle, if Qt 3D is using the OpenGL renderer, handle is a texture id integer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::handleChanged(QVariant handle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current texture handle, if Qt 3D is using the OpenGL renderer, handle is a texture id integer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handle">handle</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleChanged</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle_changed(
        &self,
        handle: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_handleChanged(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(handle)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the current texture handle type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::HandleType Qt3DRender::QAbstractTexture::handleType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handleType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current texture handle type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture::HandleType </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handleType">handleType</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleTypeChanged</b></span>(Qt3DRender::QAbstractTexture::HandleType <i>handleType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle_type(&self) -> crate::q_abstract_texture::HandleType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_handleType(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the current texture handle type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::handleTypeChanged(Qt3DRender::QAbstractTexture::HandleType handleType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handleType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current texture handle type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture::HandleType </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#handleType">handleType</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleTypeChanged</b></span>(Qt3DRender::QAbstractTexture::HandleType <i>handleType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle_type_changed(&self, handle_type: crate::q_abstract_texture::HandleType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_handleTypeChanged(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            handle_type,
        )
    }

    /// <p>Holds the height of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QAbstractTexture::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the height of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height">height</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setHeight">setHeight</a></b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_height(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the maximum layer count of the texture provider. By default, the maximum layer count is 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QAbstractTexture::layers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the maximum layer count of the texture provider. By default, the maximum layer count is 1.</p>
    /// <p><b>Note: </b>this has a meaning only for texture providers that have 3D or array target formats.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers">layers</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setLayers">setLayers</a></b></span>(int <i>layers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layersChanged</b></span>(int <i>layers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn layers(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_layers(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the magnification filter of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Filter Qt3DRender::QAbstractTexture::magnificationFilter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#magnificationFilter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the magnification filter of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Filter </td><td class="memItemRight bottomAlign"><span class="name"><b>magnificationFilter</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMagnificationFilter">setMagnificationFilter</a></b></span>(Filter <i>f</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>magnificationFilterChanged</b></span>(Filter <i>magnificationFilter</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn magnification_filter(&self) -> crate::q_abstract_texture::Filter {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_magnificationFilter(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the maximum anisotropy of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QAbstractTexture::maximumAnisotropy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the maximum anisotropy of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy">maximumAnisotropy</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMaximumAnisotropy">setMaximumAnisotropy</a></b></span>(float <i>anisotropy</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maximumAnisotropyChanged</b></span>(float <i>maximumAnisotropy</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn maximum_anisotropy(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_maximumAnisotropy(
            self as *const crate::QAbstractTexture,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QAbstractTexture::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_metaObject(
                self as *const crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the minification filter of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Filter Qt3DRender::QAbstractTexture::minificationFilter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#minificationFilter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the minification filter of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Filter </td><td class="memItemRight bottomAlign"><span class="name"><b>minificationFilter</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMinificationFilter">setMinificationFilter</a></b></span>(Filter <i>f</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minificationFilterChanged</b></span>(Filter <i>minificationFilter</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn minification_filter(&self) -> crate::q_abstract_texture::Filter {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_minificationFilter(
            self as *const crate::QAbstractTexture,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QAbstractTexture::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_qt_metacall(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QAbstractTexture::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_qt_metacast(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            arg1,
        )
    }

    /// <p>Removes a Qt3DCore::QAbstractTextureImage <i>textureImage</i> from the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::removeTextureImage(Qt3DRender::QAbstractTextureImage* textureImage)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#removeTextureImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a Qt3DCore::QAbstractTextureImage <i>textureImage</i> from the texture provider.</p></div>
    #[inline(always)]
    pub unsafe fn remove_texture_image(
        &self,
        texture_image: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTextureImage>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_removeTextureImage(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTextureImage>>::cast_into(
                texture_image,
            )
            .as_raw_ptr() as *mut crate::QAbstractTextureImage,
        )
    }

    /// <p>Holds the number of samples per texel for the texture provider. By default, the number of samples is 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QAbstractTexture::samples() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the number of samples per texel for the texture provider. By default, the number of samples is 1.</p>
    /// <p><b>Note: </b>this has a meaning only for texture providers that have multisample formats.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples">samples</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setSamples">setSamples</a></b></span>(int <i>samples</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>samplesChanged</b></span>(int <i>samples</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn samples(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_samples(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Set the comparison function to <i>function</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setComparisonFunction(Qt3DRender::QAbstractTexture::ComparisonFunction function)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonFunction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the comparison function to <i>function</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction-prop">comparisonFunction</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonFunction">comparisonFunction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_comparison_function(
        &self,
        function: crate::q_abstract_texture::ComparisonFunction,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setComparisonFunction(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            function,
        )
    }

    /// <p>Set the comparison mode to <i>mode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setComparisonMode(Qt3DRender::QAbstractTexture::ComparisonMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setComparisonMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the comparison mode to <i>mode</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode-prop">comparisonMode</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#comparisonMode">comparisonMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_comparison_mode(&self, mode: crate::q_abstract_texture::ComparisonMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setComparisonMode(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            mode,
        )
    }

    /// <p>Set the depth of the texture to <i>depth</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setDepth(int depth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setDepth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the depth of the texture to <i>depth</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth-prop">depth</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#depth">depth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_depth(&self, depth: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setDepth(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            depth,
        )
    }

    /// <p>Set the texture format to <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setFormat(Qt3DRender::QAbstractTexture::TextureFormat format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the texture format to <i>format</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format-prop">format</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(&self, format: crate::q_abstract_texture::TextureFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setFormat(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            format,
        )
    }

    /// <p>Boolean parameter <i>gen</i> sets a flag indicating whether the texture provider should generate mipmaps or not.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setGenerateMipMaps(bool gen)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setGenerateMipMaps">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Boolean parameter <i>gen</i> sets a flag indicating whether the texture provider should generate mipmaps or not.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#generateMipMaps-prop">generateMipMaps</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#generateMipMaps-prop">generateMipMaps</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_generate_mip_maps(&self, gen: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setGenerateMipMaps(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            gen,
        )
    }

    /// <p>Set the height to <i>height</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setHeight(int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the height to <i>height</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height-prop">height</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_height(&self, height: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setHeight(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            height,
        )
    }

    /// <p>Set the maximum layer count to <i>layers</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setLayers(int layers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setLayers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the maximum layer count to <i>layers</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers-prop">layers</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#layers">layers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_layers(&self, layers: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setLayers(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            layers,
        )
    }

    /// <p>Set the magnification filter to <i>f</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setMagnificationFilter(Qt3DRender::QAbstractTexture::Filter f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMagnificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the magnification filter to <i>f</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#magnificationFilter-prop">magnificationFilter</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#magnificationFilter-prop">magnificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_magnification_filter(&self, f: crate::q_abstract_texture::Filter) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setMagnificationFilter(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            f,
        )
    }

    /// <p>Sets the maximum anisotropy to <i>anisotropy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setMaximumAnisotropy(float anisotropy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMaximumAnisotropy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the maximum anisotropy to <i>anisotropy</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy-prop">maximumAnisotropy</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#maximumAnisotropy">maximumAnisotropy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_maximum_anisotropy(&self, anisotropy: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setMaximumAnisotropy(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            anisotropy,
        )
    }

    /// <p>Set the minification filter to the specified value <i>f</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setMinificationFilter(Qt3DRender::QAbstractTexture::Filter f)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setMinificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the minification filter to the specified value <i>f</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#minificationFilter-prop">minificationFilter</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#minificationFilter-prop">minificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_minification_filter(&self, f: crate::q_abstract_texture::Filter) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setMinificationFilter(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            f,
        )
    }

    /// <p>Set the number of samples per texel to <i>samples</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setSamples(int samples)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setSamples">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the number of samples per texel to <i>samples</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples-prop">samples</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#samples">samples</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_samples(&self, samples: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setSamples(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            samples,
        )
    }

    /// <p>Sets the size of the texture provider to width <i>w</i>, height <i>h</i> and depth <i>d</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::setSize(int width, int height = …, int depth = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the texture provider to width <i>w</i>, height <i>h</i> and depth <i>d</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_size_3a(
        &self,
        width: ::std::os::raw::c_int,
        height: ::std::os::raw::c_int,
        depth: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setSize(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            width,
            height,
            depth,
        )
    }

    /// <p>Sets the size of the texture provider to width <i>w</i>, height <i>h</i> and depth <i>d</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::setSize(int width, int height = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the texture provider to width <i>w</i>, height <i>h</i> and depth <i>d</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_size_2a(&self, width: ::std::os::raw::c_int, height: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setSize1(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            width,
            height,
        )
    }

    /// <p>Sets the size of the texture provider to width <i>w</i>, height <i>h</i> and depth <i>d</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::setSize(int width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the texture provider to width <i>w</i>, height <i>h</i> and depth <i>d</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_size_1a(&self, width: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setSize2(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            width,
        )
    }

    /// <p>Set the width of the texture provider to <i>width</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTexture::setWidth(int width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the width of the texture provider to <i>width</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width-prop">width</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&self, width: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setWidth(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            width,
        )
    }

    /// <p>Set the wrapmode to the value specified in <i>wrapMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::setWrapMode(const Qt3DRender::QTextureWrapMode& wrapMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setWrapMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Set the wrapmode to the value specified in <i>wrapMode</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#wrapMode-prop">wrapMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_wrap_mode(
        &self,
        wrap_mode: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureWrapMode>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_setWrapMode(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureWrapMode>>::cast_into(wrap_mode)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the current status of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Status Qt3DRender::QAbstractTexture::status() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current status of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#status">status</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn status(&self) -> crate::q_abstract_texture::Status {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_status(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the target format of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Target Qt3DRender::QAbstractTexture::target() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#target-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the target format of the texture provider.</p>
    /// <p><b>Note: </b>The target format can only be set once.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Target </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#target">target</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn target(&self) -> crate::q_abstract_texture::Target {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_target(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Returns a list of pointers to <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> objects contained in the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*> Qt3DRender::QAbstractTexture::textureImages() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#textureImages">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of pointers to <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> objects contained in the texture provider.</p></div>
    #[inline(always)]
    pub unsafe fn texture_images(
        &self,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_textureImages(
                self as *const crate::QAbstractTexture,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractTexture::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractTexture::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Updates a sub region of the texture, defined by <i>update</i>, without having to change the data generator or rely on adding or removing texture images.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractTexture::updateData(const Qt3DRender::QTextureDataUpdate& update)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#updateData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Updates a sub region of the texture, defined by <i>update</i>, without having to change the data generator or rely on adding or removing texture images.</p>
    /// <p>This function was introduced in  Qt 5.14.</p>
    /// <p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See <a href="http://doc.qt.io/qt-5/qobject.html#Q_INVOKABLE">Q_INVOKABLE</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn update_data(
        &self,
        update: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureDataUpdate>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_updateData(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureDataUpdate>>::cast_into(update)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the width of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QAbstractTexture::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the width of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#width">width</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#setWidth">setWidth</a></b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_width(
            self as *const crate::QAbstractTexture,
        )
    }

    /// <p>Holds the wrap mode of the texture provider.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode* Qt3DRender::QAbstractTexture::wrapMode()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#wrapMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the wrap mode of the texture provider.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QTextureWrapMode *</td><td class="memItemRight bottomAlign"><span class="name"><b>wrapMode</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn wrap_mode(&self) -> ::qt_core::QPtr<crate::QTextureWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_wrapMode(
                self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>Provides texture image data for <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a></p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureImageDataGenerator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides texture image data for <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a></p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html">QTextureImageDataGenerator</a> is a data provider for <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a>. <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html">QTextureImageDataGenerator</a> can be used to expand Qt3D with more ways to load texture image data as well as support user-defined formats and formats Qt3D does not natively support. The data is returned by the <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html#QTextureImageDataPtr-typedef">QTextureImageDataPtr</a> which contains the data that will be loaded to the texture. <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html">QTextureImageDataGenerator</a> is executed by Aspect jobs in the backend.</p></div>
#[repr(C)]
pub struct QTextureImageDataGenerator {
    _unused: u8,
}
/// <p>Encapsulates the necessary information to create an OpenGL texture image.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates the necessary information to create an OpenGL texture image.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> should be used as the means of providing image data to a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a>. It contains the necessary information: mipmap level, layer, cube face load at the proper place data into an OpenGL texture.</p>
/// <p>The actual data is provided through a <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html">QTextureImageDataGenerator</a> that will be executed by Aspect jobs in the backend. <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> should be subclassed to provide a functor and eventual additional properties needed by the functor to load actual data.</p>
/// <p><b>Note: </b>: <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> should never be shared. Expect crashes, undefined behavior at best if this rule is not respected.</p></div>
#[repr(C)]
pub struct QAbstractTextureImage {
    _unused: u8,
}
impl QAbstractTextureImage {
    /// <p>Sets the mip level of a texture to <i>level</i>. <i>level</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTextureImage::setMipLevel` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setMipLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the mip level of a texture to <i>level</i>. <i>level</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#mipLevel-prop">mipLevel</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#mipLevel-prop">mipLevel</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_mip_level(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMipLevel(int)\0"),
            )
        }
    }

    /// <p>Sets the layer of a texture to <i>layer</i>. <i>layer</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTextureImage::setLayer` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the layer of a texture to <i>layer</i>. <i>layer</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#layer-prop">layer</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#layer-prop">layer</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_layer(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLayer(int)\0"),
            )
        }
    }

    /// <p>Sets the texture image face to <i>face</i>. <i>face</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractTextureImage::setFace` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setFace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture image face to <i>face</i>. <i>face</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#face-prop">face</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#face-prop">face</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_face(&self) -> ::qt_core::Receiver<(crate::q_abstract_texture::CubeMapFace,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFace(Qt3DRender::QAbstractTexture::CubeMapFace)\0",
                ),
            )
        }
    }

    /// <p>Holds the mipmap level of the texture image.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTextureImage::mipLevelChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the mipmap level of the texture image.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setMipLevel">setMipLevel</a></b></span>(int <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mip_level_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2mipLevelChanged(int)\0"),
            )
        }
    }

    /// <p>Returns the layer of the texture image.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTextureImage::layerChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the layer of the texture image.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setLayer">setLayer</a></b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn layer_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2layerChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the cube map face of the texture image.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractTextureImage::faceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#face-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the cube map face of the texture image.</p>
    /// <p><b>Note: </b>The cube map face has a meaning only for <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMap</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMapArray</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture::CubeMapFace </td><td class="memItemRight bottomAlign"><span class="name"><b>face</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setFace">setFace</a></b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceChanged</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn face_changed(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::CubeMapFace,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2faceChanged(Qt3DRender::QAbstractTexture::CubeMapFace)\0",
                ),
            )
        }
    }

    /// <p>Holds the cube map face of the texture image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::CubeMapFace Qt3DRender::QAbstractTextureImage::face() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#face-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the cube map face of the texture image.</p>
    /// <p><b>Note: </b>The cube map face has a meaning only for <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMap</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMapArray</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture::CubeMapFace </td><td class="memItemRight bottomAlign"><span class="name"><b>face</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setFace">setFace</a></b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceChanged</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn face(&self) -> crate::q_abstract_texture::CubeMapFace {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_face(
            self as *const crate::QAbstractTextureImage,
        )
    }

    /// <p>Returns the layer of the texture image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QAbstractTextureImage::layer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the layer of the texture image.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setLayer">setLayer</a></b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn layer(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_layer(
            self as *const crate::QAbstractTextureImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QAbstractTextureImage::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_metaObject(
                self as *const crate::QAbstractTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the mipmap level of the texture image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QAbstractTextureImage::mipLevel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the mipmap level of the texture image.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setMipLevel">setMipLevel</a></b></span>(int <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn mip_level(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_mipLevel(
            self as *const crate::QAbstractTextureImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QAbstractTextureImage::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_qt_metacall(
            self as *const crate::QAbstractTextureImage as *mut crate::QAbstractTextureImage,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QAbstractTextureImage::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_qt_metacast(
            self as *const crate::QAbstractTextureImage as *mut crate::QAbstractTextureImage,
            arg1,
        )
    }

    /// <p>Sets the texture image face to <i>face</i>. <i>face</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTextureImage::setFace(Qt3DRender::QAbstractTexture::CubeMapFace face)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setFace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture image face to <i>face</i>. <i>face</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#face-prop">face</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#face-prop">face</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_face(&self, face: crate::q_abstract_texture::CubeMapFace) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_setFace(
            self as *const crate::QAbstractTextureImage as *mut crate::QAbstractTextureImage,
            face,
        )
    }

    /// <p>Sets the layer of a texture to <i>layer</i>. <i>layer</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTextureImage::setLayer(int layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the layer of a texture to <i>layer</i>. <i>layer</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#layer-prop">layer</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#layer-prop">layer</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_layer(&self, layer: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_setLayer(
            self as *const crate::QAbstractTextureImage as *mut crate::QAbstractTextureImage,
            layer,
        )
    }

    /// <p>Sets the mip level of a texture to <i>level</i>. <i>level</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractTextureImage::setMipLevel(int level)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#setMipLevel">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the mip level of a texture to <i>level</i>. <i>level</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#mipLevel-prop">mipLevel</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html#mipLevel-prop">mipLevel</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mip_level(&self, level: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_setMipLevel(
            self as *const crate::QAbstractTextureImage as *mut crate::QAbstractTextureImage,
            level,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractTextureImage::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractTextureImage::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>An abstract base class for all render states</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderState```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>An abstract base class for all render states</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">Qt3DRender::QRenderState</a> class is abstract base class for all render states. One can not instantiate <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> directly, but through its subclasses.</p></div>
#[repr(C)]
pub struct QRenderState {
    _unused: u8,
}
impl QRenderState {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderState::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderState_metaObject(
                self as *const crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderState::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderState_qt_metacall(
            self as *const crate::QRenderState as *mut crate::QRenderState,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderState::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderState_qt_metacast(
            self as *const crate::QRenderState as *mut crate::QRenderState,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderState_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderState::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderState_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderState::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderState_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Enable alpha-to-coverage multisampling mode</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAlphaCoverage```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qalphacoverage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable alpha-to-coverage multisampling mode</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qalphacoverage.html">Qt3DRender::QAlphaCoverage</a> class enables alpha-to-coverage multisampling mode. When enabled, the fragment alpha value is used as a coverage for the sample and combined with fragment coverage value. <a href="http://doc.qt.io/qt-5/qt3drender-qalphacoverage.html">Qt3DRender::QAlphaCoverage</a> does nothing if multisampling is disabled. Alpha-to-coverage is most useful when order independent blending is required, for example when rendering leaves, grass and other rich vegetation.</p></div>
#[repr(C)]
pub struct QAlphaCoverage {
    _unused: u8,
}
impl QAlphaCoverage {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QAlphaCoverage::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_metaObject(
                self as *const crate::QAlphaCoverage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QAlphaCoverage.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAlphaCoverage::QAlphaCoverage(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphacoverage.html#QAlphaCoverage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QAlphaCoverage.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QAlphaCoverage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_QAlphaCoverage(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Enable alpha-to-coverage multisampling mode</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAlphaCoverage::QAlphaCoverage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphacoverage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable alpha-to-coverage multisampling mode</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qalphacoverage.html">Qt3DRender::QAlphaCoverage</a> class enables alpha-to-coverage multisampling mode. When enabled, the fragment alpha value is used as a coverage for the sample and combined with fragment coverage value. <a href="http://doc.qt.io/qt-5/qt3drender-qalphacoverage.html">Qt3DRender::QAlphaCoverage</a> does nothing if multisampling is disabled. Alpha-to-coverage is most useful when order independent blending is required, for example when rendering leaves, grass and other rich vegetation.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QAlphaCoverage> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_QAlphaCoverage1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QAlphaCoverage::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_qt_metacall(
            self as *const crate::QAlphaCoverage as *mut crate::QAlphaCoverage,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QAlphaCoverage::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_qt_metacast(
            self as *const crate::QAlphaCoverage as *mut crate::QAlphaCoverage,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAlphaCoverage::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAlphaCoverage::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_alpha_test {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QAlphaTest```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAlphaTest::AlphaFunction```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AlphaFunction(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AlphaFunction {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AlphaFunction(value)
        }
    }

    impl From<AlphaFunction> for ::std::os::raw::c_int {
        fn from(value: AlphaFunction) -> Self {
            value.0
        }
    }

    impl AlphaFunction {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AlphaFunction {
        /// C++ enum variant: <span style='color: green;'>```Never = 512```</span>
        #[allow(non_upper_case_globals)]
        pub const Never: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(512);
        /// C++ enum variant: <span style='color: green;'>```Always = 519```</span>
        #[allow(non_upper_case_globals)]
        pub const Always: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(519);
        /// C++ enum variant: <span style='color: green;'>```Less = 513```</span>
        #[allow(non_upper_case_globals)]
        pub const Less: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(513);
        /// C++ enum variant: <span style='color: green;'>```LessOrEqual = 515```</span>
        #[allow(non_upper_case_globals)]
        pub const LessOrEqual: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(515);
        /// C++ enum variant: <span style='color: green;'>```Equal = 514```</span>
        #[allow(non_upper_case_globals)]
        pub const Equal: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(514);
        /// C++ enum variant: <span style='color: green;'>```GreaterOrEqual = 518```</span>
        #[allow(non_upper_case_globals)]
        pub const GreaterOrEqual: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(518);
        /// C++ enum variant: <span style='color: green;'>```Greater = 516```</span>
        #[allow(non_upper_case_globals)]
        pub const Greater: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(516);
        /// C++ enum variant: <span style='color: green;'>```NotEqual = 517```</span>
        #[allow(non_upper_case_globals)]
        pub const NotEqual: crate::q_alpha_test::AlphaFunction =
            crate::q_alpha_test::AlphaFunction(517);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html">QAlphaTest</a> class specify alpha reference test</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAlphaTest```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html">QAlphaTest</a> class specify alpha reference test</p>
/// <p>As the OpenGL documentation explains; The alpha test discards a fragment conditional on the outcome of a comparison between the incoming fragment's alpha value and a constant reference value.</p></div>
#[repr(C)]
pub struct QAlphaTest {
    _unused: u8,
}
impl QAlphaTest {
    /// <p>Holds the alpha function used by the alpha test. Default is Never.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAlphaTest::setAlphaFunction` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#alphaFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the alpha function used by the alpha test. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AlphaFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaFunction</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunctionChanged</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_alpha_function(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_alpha_test::AlphaFunction,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setAlphaFunction(Qt3DRender::QAlphaTest::AlphaFunction)\0",
                ),
            )
        }
    }

    /// <p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAlphaTest::setReferenceValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_reference_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setReferenceValue(float)\0"),
            )
        }
    }

    /// <p>Holds the alpha function used by the alpha test. Default is Never.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAlphaTest::alphaFunctionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#alphaFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the alpha function used by the alpha test. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AlphaFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaFunction</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunctionChanged</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn alpha_function_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_alpha_test::AlphaFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2alphaFunctionChanged(Qt3DRender::QAlphaTest::AlphaFunction)\0",
                ),
            )
        }
    }

    /// <p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAlphaTest::referenceValueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn reference_value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2referenceValueChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the alpha function used by the alpha test. Default is Never.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaTest::AlphaFunction Qt3DRender::QAlphaTest::alphaFunction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#alphaFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the alpha function used by the alpha test. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AlphaFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaFunction</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunctionChanged</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn alpha_function(&self) -> crate::q_alpha_test::AlphaFunction {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_alphaFunction(
            self as *const crate::QAlphaTest,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QAlphaTest::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_metaObject(
                self as *const crate::QAlphaTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QAlphaTest.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAlphaTest::QAlphaTest(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#QAlphaTest">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QAlphaTest.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QAlphaTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_QAlphaTest(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html">QAlphaTest</a> class specify alpha reference test</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAlphaTest::QAlphaTest()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html">QAlphaTest</a> class specify alpha reference test</p>
    /// <p>As the OpenGL documentation explains; The alpha test discards a fragment conditional on the outcome of a comparison between the incoming fragment's alpha value and a constant reference value.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QAlphaTest> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_QAlphaTest1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QAlphaTest::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_qt_metacall(
            self as *const crate::QAlphaTest as *mut crate::QAlphaTest,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QAlphaTest::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_qt_metacast(
            self as *const crate::QAlphaTest as *mut crate::QAlphaTest,
            arg1,
        )
    }

    /// <p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QAlphaTest::referenceValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn reference_value(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_referenceValue(
            self as *const crate::QAlphaTest,
        )
    }

    /// <p>Holds the alpha function used by the alpha test. Default is Never.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAlphaTest::setAlphaFunction(Qt3DRender::QAlphaTest::AlphaFunction alphaFunction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#alphaFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the alpha function used by the alpha test. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AlphaFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaFunction</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaFunctionChanged</b></span>(AlphaFunction <i>alphaFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_alpha_function(&self, alpha_function: crate::q_alpha_test::AlphaFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_setAlphaFunction(
            self as *const crate::QAlphaTest as *mut crate::QAlphaTest,
            alpha_function,
        )
    }

    /// <p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAlphaTest::setReferenceValue(float referenceValue)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qalphatest.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the reference value used by the alpha test. Default is 0.0. When set, the value is clamped between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(float <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_reference_value(&self, reference_value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_setReferenceValue(
            self as *const crate::QAlphaTest as *mut crate::QAlphaTest,
            reference_value,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAlphaTest::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAlphaTest::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_attribute {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QAttribute```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAttribute::AttributeType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AttributeType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AttributeType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AttributeType(value)
        }
    }

    impl From<AttributeType> for ::std::os::raw::c_int {
        fn from(value: AttributeType) -> Self {
            value.0
        }
    }

    impl AttributeType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AttributeType {
        /// C++ enum variant: <span style='color: green;'>```VertexAttribute = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const VertexAttribute: crate::q_attribute::AttributeType =
            crate::q_attribute::AttributeType(0);
        /// C++ enum variant: <span style='color: green;'>```IndexAttribute = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const IndexAttribute: crate::q_attribute::AttributeType =
            crate::q_attribute::AttributeType(1);
        /// C++ enum variant: <span style='color: green;'>```DrawIndirectAttribute = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const DrawIndirectAttribute: crate::q_attribute::AttributeType =
            crate::q_attribute::AttributeType(2);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAttribute::VertexBaseType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct VertexBaseType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for VertexBaseType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            VertexBaseType(value)
        }
    }

    impl From<VertexBaseType> for ::std::os::raw::c_int {
        fn from(value: VertexBaseType) -> Self {
            value.0
        }
    }

    impl VertexBaseType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl VertexBaseType {
        /// C++ enum variant: <span style='color: green;'>```Byte = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Byte: crate::q_attribute::VertexBaseType = crate::q_attribute::VertexBaseType(0);
        /// C++ enum variant: <span style='color: green;'>```UnsignedByte = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const UnsignedByte: crate::q_attribute::VertexBaseType =
            crate::q_attribute::VertexBaseType(1);
        /// C++ enum variant: <span style='color: green;'>```Short = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Short: crate::q_attribute::VertexBaseType = crate::q_attribute::VertexBaseType(2);
        /// C++ enum variant: <span style='color: green;'>```UnsignedShort = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const UnsignedShort: crate::q_attribute::VertexBaseType =
            crate::q_attribute::VertexBaseType(3);
        /// C++ enum variant: <span style='color: green;'>```Int = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Int: crate::q_attribute::VertexBaseType = crate::q_attribute::VertexBaseType(4);
        /// C++ enum variant: <span style='color: green;'>```UnsignedInt = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const UnsignedInt: crate::q_attribute::VertexBaseType =
            crate::q_attribute::VertexBaseType(5);
        /// C++ enum variant: <span style='color: green;'>```HalfFloat = 6```</span>
        #[allow(non_upper_case_globals)]
        pub const HalfFloat: crate::q_attribute::VertexBaseType =
            crate::q_attribute::VertexBaseType(6);
        /// C++ enum variant: <span style='color: green;'>```Float = 7```</span>
        #[allow(non_upper_case_globals)]
        pub const Float: crate::q_attribute::VertexBaseType = crate::q_attribute::VertexBaseType(7);
        /// C++ enum variant: <span style='color: green;'>```Double = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const Double: crate::q_attribute::VertexBaseType =
            crate::q_attribute::VertexBaseType(8);
    }
}
/// <p>Defines an attribute and how data should be read from a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">QBuffer</a>.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAttribute```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines an attribute and how data should be read from a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">QBuffer</a>.</p>
/// <p>There are 3 types of attributes.</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">VertexAttribute</a>: used to define data to be read on a per vertex basis</li>
/// <li><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">IndexAttribute</a>: used to define vertex indices when indexed draw calls are to be used</li>
/// <li><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">DrawIndirectAttribute</a>: used to specify the DrawIndirect buffer to be used when indirect draw calls are to be used</li>
/// </ul>
/// <p><b>Note: </b>when an attribute is of type <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">DrawIndirectAttribute</a>, only count, stride and offset are relevant.</p><p>When providing your own attributes, it may make sense to name your attribute using helpers such as <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName">QAttribute::defaultPositionAttributeName</a>() as that will ensure your geometry will be compatible with picking and the various materials provided in the <a href="http://doc.qt.io/qt-5/qt3dextras-module.html">Qt3DExtras</a> module.</p></div>
#[repr(C)]
pub struct QAttribute {
    _unused: u8,
}
impl QAttribute {
    /// <p>Holds the buffer.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setBuffer` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#buffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QBuffer *</td><td class="memItemRight bottomAlign"><span class="name"><b>buffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffer</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferChanged</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_buffer(&self) -> ::qt_core::Receiver<(*mut crate::QBuffer,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setBuffer(Qt3DRender::QBuffer *)\0",
                ),
            )
        }
    }

    /// <p>Holds the name.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setName` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_name(&self) -> ::qt_core::Receiver<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setName(QString const &)\0"),
            )
        }
    }

    /// <p>Holds the data type.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setVertexBaseType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexBaseType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> VertexBaseType </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexBaseType</b></span>(VertexBaseType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseTypeChanged</b></span>(VertexBaseType <i>vertexBaseType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_vertex_base_type(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_attribute::VertexBaseType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setVertexBaseType(Qt3DRender::QAttribute::VertexBaseType)\0",
                ),
            )
        }
    }

    /// <p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setVertexSize` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexSize</b></span>(uint <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSizeChanged</b></span>(uint <i>vertexSize</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_vertex_size(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setVertexSize(unsigned int)\0"),
            )
        }
    }

    /// <p>This function is deprecated.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setDataType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#setDataType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is deprecated.</p></div>
    #[inline(always)]
    pub fn slot_set_data_type(&self) -> ::qt_core::Receiver<(crate::q_attribute::VertexBaseType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setDataType(Qt3DRender::QAttribute::VertexBaseType)\0",
                ),
            )
        }
    }

    /// <p>This function is deprecated.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setDataSize` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#setDataSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is deprecated.</p></div>
    #[inline(always)]
    pub fn slot_set_data_size(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDataSize(unsigned int)\0"),
            )
        }
    }

    /// <p>Holds the count.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setCount` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#count-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>count</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCount</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>countChanged</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_count(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setCount(unsigned int)\0"),
            )
        }
    }

    /// <p>Holds the byte stride.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setByteStride` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteStride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte stride.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteStride</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStrideChanged</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_byte_stride(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setByteStride(unsigned int)\0"),
            )
        }
    }

    /// <p>Holds the byte offset.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setByteOffset` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte offset.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteOffset</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffsetChanged</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_byte_offset(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setByteOffset(unsigned int)\0"),
            )
        }
    }

    /// <p>Holds the divisor.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setDivisor` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#divisor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the divisor.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>divisor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDivisor</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>divisorChanged</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_divisor(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDivisor(unsigned int)\0"),
            )
        }
    }

    /// <p>Holds the attribute type.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAttribute::setAttributeType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#attributeType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttributeType </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttributeType</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeTypeChanged</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_attribute_type(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_attribute::AttributeType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setAttributeType(Qt3DRender::QAttribute::AttributeType)\0",
                ),
            )
        }
    }

    /// <p>Holds the buffer.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::bufferChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#buffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QBuffer *</td><td class="memItemRight bottomAlign"><span class="name"><b>buffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffer</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferChanged</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn buffer_changed(&self) -> ::qt_core::Signal<(*mut crate::QBuffer,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2bufferChanged(Qt3DRender::QBuffer *)\0",
                ),
            )
        }
    }

    /// <p>Holds the name.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::nameChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn name_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2nameChanged(QString const &)\0"),
            )
        }
    }

    /// <p>Holds the data type.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::vertexBaseTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexBaseType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> VertexBaseType </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexBaseType</b></span>(VertexBaseType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseTypeChanged</b></span>(VertexBaseType <i>vertexBaseType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn vertex_base_type_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_attribute::VertexBaseType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2vertexBaseTypeChanged(Qt3DRender::QAttribute::VertexBaseType)\0",
                ),
            )
        }
    }

    /// <p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::vertexSizeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexSize</b></span>(uint <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSizeChanged</b></span>(uint <i>vertexSize</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn vertex_size_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2vertexSizeChanged(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>The signal is emitted with <i>vertexBaseType</i> when the dataType changed.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::dataTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#dataTypeChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The signal is emitted with <i>vertexBaseType</i> when the dataType changed.</p></div>
    #[inline(always)]
    pub fn data_type_changed(&self) -> ::qt_core::Signal<(crate::q_attribute::VertexBaseType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2dataTypeChanged(Qt3DRender::QAttribute::VertexBaseType)\0",
                ),
            )
        }
    }

    /// <p>The signal is emitted with <i>vertexSize</i> when the dataSize changes.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::dataSizeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#dataSizeChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The signal is emitted with <i>vertexSize</i> when the dataSize changes.</p></div>
    #[inline(always)]
    pub fn data_size_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2dataSizeChanged(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the count.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::countChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#count-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>count</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCount</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>countChanged</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn count_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2countChanged(unsigned int)\0"),
            )
        }
    }

    /// <p>Holds the byte stride.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::byteStrideChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteStride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte stride.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteStride</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStrideChanged</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn byte_stride_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2byteStrideChanged(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the byte offset.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::byteOffsetChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte offset.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteOffset</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffsetChanged</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn byte_offset_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2byteOffsetChanged(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the divisor.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::divisorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#divisor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the divisor.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>divisor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDivisor</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>divisorChanged</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn divisor_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2divisorChanged(unsigned int)\0"),
            )
        }
    }

    /// <p>Holds the attribute type.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAttribute::attributeTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#attributeType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttributeType </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttributeType</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeTypeChanged</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn attribute_type_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_attribute::AttributeType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2attributeTypeChanged(Qt3DRender::QAttribute::AttributeType)\0",
                ),
            )
        }
    }

    /// <p>Holds the attribute type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute::AttributeType Qt3DRender::QAttribute::attributeType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#attributeType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttributeType </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttributeType</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeTypeChanged</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn attribute_type(&self) -> crate::q_attribute::AttributeType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_attributeType(
            self as *const crate::QAttribute,
        )
    }

    /// <p>Holds the buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer* Qt3DRender::QAttribute::buffer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#buffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QBuffer *</td><td class="memItemRight bottomAlign"><span class="name"><b>buffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffer</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferChanged</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn buffer(&self) -> ::qt_core::QPtr<crate::QBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_buffer(
                self as *const crate::QAttribute,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Holds the byte offset.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QAttribute::byteOffset() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte offset.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteOffset</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffsetChanged</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn byte_offset(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_byteOffset(
            self as *const crate::QAttribute,
        )
    }

    /// <p>Holds the byte stride.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QAttribute::byteStride() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteStride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte stride.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteStride</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStrideChanged</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn byte_stride(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_byteStride(
            self as *const crate::QAttribute,
        )
    }

    /// <p>Holds the count.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QAttribute::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#count-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>count</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCount</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>countChanged</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn count(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_count(
            self as *const crate::QAttribute,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultColorAttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultColorAttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultColorAttributeName">defaultColorAttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn default_color_attribute_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultColorAttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultJointIndicesAttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultJointIndicesAttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultJointIndicesAttributeName">defaultJointIndicesAttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn default_joint_indices_attribute_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultJointIndicesAttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultJointWeightsAttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultJointWeightsAttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultJointWeightsAttributeName">defaultJointWeightsAttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn default_joint_weights_attribute_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultJointWeightsAttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultNormalAttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultNormalAttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultNormalAttributeName">defaultNormalAttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn default_normal_attribute_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultNormalAttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultPositionAttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName">defaultPositionAttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn default_position_attribute_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultPositionAttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultTangentAttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTangentAttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTangentAttributeName">defaultTangentAttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn default_tangent_attribute_name() -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultTangentAttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultTextureCoordinate1AttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTextureCoordinate1AttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTextureCoordinate1AttributeName">defaultTextureCoordinate1AttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn default_texture_coordinate1_attribute_name(
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultTextureCoordinate1AttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultTextureCoordinate2AttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTextureCoordinate2AttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTextureCoordinate2AttributeName">defaultTextureCoordinate2AttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn default_texture_coordinate2_attribute_name(
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultTextureCoordinate2AttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::defaultTextureCoordinateAttributeName()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTextureCoordinateAttributeName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultTextureCoordinateAttributeName">defaultTextureCoordinateAttributeName</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn default_texture_coordinate_attribute_name(
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_defaultTextureCoordinateAttributeName()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the divisor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QAttribute::divisor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#divisor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the divisor.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>divisor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDivisor</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>divisorChanged</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn divisor(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_divisor(
            self as *const crate::QAttribute,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QAttribute::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_metaObject(
                self as *const crate::QAttribute,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString Qt3DRender::QAttribute::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_name(
                self as *const crate::QAttribute,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_node(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count, unsigned int offset = …, unsigned int stride = …, Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_vertex_base_type4_uint_q_node(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_uint,
        stride: ::std::os::raw::c_uint,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute1(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                vertex_base_type,
                vertex_size,
                count,
                offset,
                stride,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, const QString& name, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count, unsigned int offset = …, unsigned int stride = …, Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_q_string_vertex_base_type4_uint_q_node(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_uint,
        stride: ::std::os::raw::c_uint,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute2(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                vertex_base_type,
                vertex_size,
                count,
                offset,
                stride,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Defines an attribute and how data should be read from a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">QBuffer</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines an attribute and how data should be read from a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">QBuffer</a>.</p>
    /// <p>There are 3 types of attributes.</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">VertexAttribute</a>: used to define data to be read on a per vertex basis</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">IndexAttribute</a>: used to define vertex indices when indexed draw calls are to be used</li>
    /// <li><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">DrawIndirectAttribute</a>: used to specify the DrawIndirect buffer to be used when indirect draw calls are to be used</li>
    /// </ul>
    /// <p><b>Note: </b>when an attribute is of type <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#AttributeType-enum">DrawIndirectAttribute</a>, only count, stride and offset are relevant.</p><p>When providing your own attributes, it may make sense to name your attribute using helpers such as <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName">QAttribute::defaultPositionAttributeName</a>() as that will ensure your geometry will be compatible with picking and the various materials provided in the <a href="http://doc.qt.io/qt-5/qt3dextras-module.html">Qt3DExtras</a> module.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute3() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count, unsigned int offset = …, unsigned int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_vertex_base_type4_uint(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_uint,
        stride: ::std::os::raw::c_uint,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute5(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                vertex_base_type,
                vertex_size,
                count,
                offset,
                stride,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count, unsigned int offset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_vertex_base_type3_uint(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_uint,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute6(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                vertex_base_type,
                vertex_size,
                count,
                offset,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_vertex_base_type2_uint(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute7(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                vertex_base_type,
                vertex_size,
                count,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, const QString& name, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count, unsigned int offset = …, unsigned int stride = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_q_string_vertex_base_type4_uint(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_uint,
        stride: ::std::os::raw::c_uint,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                vertex_base_type,
                vertex_size,
                count,
                offset,
                stride,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, const QString& name, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count, unsigned int offset = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_q_string_vertex_base_type3_uint(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
        offset: ::std::os::raw::c_uint,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute9(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                vertex_base_type,
                vertex_size,
                count,
                offset,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAttribute::QAttribute(Qt3DRender::QBuffer* buf, const QString& name, Qt3DRender::QAttribute::VertexBaseType vertexBaseType, unsigned int vertexSize, unsigned int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#QAttribute-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">QAttribute</a> named <i>name</i> from <i>buf</i> of <i>type</i>, <i>dataSize</i>, <i>count</i>, <i>offset</i>, and <i>stride</i> with <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_buffer_q_string_vertex_base_type2_uint(
        buf: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        vertex_base_type: crate::q_attribute::VertexBaseType,
        vertex_size: ::std::os::raw::c_uint,
        count: ::std::os::raw::c_uint,
    ) -> ::qt_core::QBox<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_QAttribute10(
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buf).as_raw_ptr()
                    as *mut crate::QBuffer,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                vertex_base_type,
                vertex_size,
                count,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QAttribute::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_qt_metacall(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QAttribute::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_qt_metacast(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            arg1,
        )
    }

    /// <p>Holds the attribute type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setAttributeType(Qt3DRender::QAttribute::AttributeType attributeType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#attributeType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttributeType </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttributeType</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attributeTypeChanged</b></span>(AttributeType <i>attributeType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_attribute_type(&self, attribute_type: crate::q_attribute::AttributeType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setAttributeType(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            attribute_type,
        )
    }

    /// <p>Holds the buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setBuffer(Qt3DRender::QBuffer* buffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#buffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QBuffer *</td><td class="memItemRight bottomAlign"><span class="name"><b>buffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffer</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferChanged</b></span>(QBuffer *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_buffer(
        &self,
        buffer: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setBuffer(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(buffer).as_raw_ptr()
                as *mut crate::QBuffer,
        )
    }

    /// <p>Holds the byte offset.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setByteOffset(unsigned int byteOffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte offset.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteOffset</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteOffsetChanged</b></span>(uint <i>byteOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_byte_offset(&self, byte_offset: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setByteOffset(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            byte_offset,
        )
    }

    /// <p>Holds the byte stride.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setByteStride(unsigned int byteStride)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#byteStride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte stride.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setByteStride</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>byteStrideChanged</b></span>(uint <i>byteStride</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_byte_stride(&self, byte_stride: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setByteStride(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            byte_stride,
        )
    }

    /// <p>Holds the count.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setCount(unsigned int count)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#count-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>count</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCount</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>countChanged</b></span>(uint <i>count</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_count(&self, count: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setCount(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            count,
        )
    }

    /// <p>This function is deprecated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setDataSize(unsigned int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#setDataSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is deprecated.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_size(&self, size: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setDataSize(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            size,
        )
    }

    /// <p>This function is deprecated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setDataType(Qt3DRender::QAttribute::VertexBaseType type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#setDataType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is deprecated.</p></div>
    #[inline(always)]
    pub unsafe fn set_data_type(&self, type_: crate::q_attribute::VertexBaseType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setDataType(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            type_,
        )
    }

    /// <p>Holds the divisor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setDivisor(unsigned int divisor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#divisor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the divisor.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>divisor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDivisor</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>divisorChanged</b></span>(uint <i>divisor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_divisor(&self, divisor: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setDivisor(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            divisor,
        )
    }

    /// <p>Holds the name.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_name(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setName(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the data type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setVertexBaseType(Qt3DRender::QAttribute::VertexBaseType type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexBaseType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> VertexBaseType </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexBaseType</b></span>(VertexBaseType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseTypeChanged</b></span>(VertexBaseType <i>vertexBaseType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_vertex_base_type(&self, type_: crate::q_attribute::VertexBaseType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setVertexBaseType(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            type_,
        )
    }

    /// <p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAttribute::setVertexSize(unsigned int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexSize</b></span>(uint <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSizeChanged</b></span>(uint <i>vertexSize</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_vertex_size(&self, size: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_setVertexSize(
            self as *const crate::QAttribute as *mut crate::QAttribute,
            size,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAttribute::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the data type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute::VertexBaseType Qt3DRender::QAttribute::vertexBaseType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexBaseType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> VertexBaseType </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexBaseType</b></span>(VertexBaseType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexBaseTypeChanged</b></span>(VertexBaseType <i>vertexBaseType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertex_base_type(&self) -> crate::q_attribute::VertexBaseType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_vertexBaseType(
            self as *const crate::QAttribute,
        )
    }

    /// <p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QAttribute::vertexSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#vertexSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the data size, it can only be 1 to 4 units (scalars and vectors), 9 units (3x3 matrices) or 16 units (4x4 matrices).</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexSize</b></span>(uint <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexSizeChanged</b></span>(uint <i>vertexSize</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertex_size(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_vertexSize(
            self as *const crate::QAttribute,
        )
    }
}

pub mod q_blend_equation {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QBlendEquation```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QBlendEquation::BlendFunction```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct BlendFunction(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for BlendFunction {
        fn from(value: ::std::os::raw::c_int) -> Self {
            BlendFunction(value)
        }
    }

    impl From<BlendFunction> for ::std::os::raw::c_int {
        fn from(value: BlendFunction) -> Self {
            value.0
        }
    }

    impl BlendFunction {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl BlendFunction {
        /// C++ enum variant: <span style='color: green;'>```Add = 32774```</span>
        #[allow(non_upper_case_globals)]
        pub const Add: crate::q_blend_equation::BlendFunction =
            crate::q_blend_equation::BlendFunction(32774);
        /// C++ enum variant: <span style='color: green;'>```Subtract = 32778```</span>
        #[allow(non_upper_case_globals)]
        pub const Subtract: crate::q_blend_equation::BlendFunction =
            crate::q_blend_equation::BlendFunction(32778);
        /// C++ enum variant: <span style='color: green;'>```ReverseSubtract = 32779```</span>
        #[allow(non_upper_case_globals)]
        pub const ReverseSubtract: crate::q_blend_equation::BlendFunction =
            crate::q_blend_equation::BlendFunction(32779);
        /// C++ enum variant: <span style='color: green;'>```Min = 32775```</span>
        #[allow(non_upper_case_globals)]
        pub const Min: crate::q_blend_equation::BlendFunction =
            crate::q_blend_equation::BlendFunction(32775);
        /// C++ enum variant: <span style='color: green;'>```Max = 32776```</span>
        #[allow(non_upper_case_globals)]
        pub const Max: crate::q_blend_equation::BlendFunction =
            crate::q_blend_equation::BlendFunction(32776);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html">QBlendEquation</a> class specifies the equation used for both the RGB blend equation and the Alpha blend equation</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QBlendEquation```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html">QBlendEquation</a> class specifies the equation used for both the RGB blend equation and the Alpha blend equation</p>
/// <p>The blend equation is used to determine how a new pixel is combined with a pixel already in the framebuffer.</p></div>
#[repr(C)]
pub struct QBlendEquation {
    _unused: u8,
}
impl QBlendEquation {
    /// <p>Holds the blend function, which determines how source and destination colors are combined.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquation::setBlendFunction` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html#blendFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the blend function, which determines how source and destination colors are combined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BlendFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlendFunction</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunctionChanged</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_blend_function(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_blend_equation::BlendFunction,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setBlendFunction(Qt3DRender::QBlendEquation::BlendFunction)\0",
                ),
            )
        }
    }

    /// <p>Holds the blend function, which determines how source and destination colors are combined.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquation::blendFunctionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html#blendFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the blend function, which determines how source and destination colors are combined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BlendFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlendFunction</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunctionChanged</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn blend_function_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_blend_equation::BlendFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2blendFunctionChanged(Qt3DRender::QBlendEquation::BlendFunction)\0",
                ),
            )
        }
    }

    /// <p>Holds the blend function, which determines how source and destination colors are combined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquation::BlendFunction Qt3DRender::QBlendEquation::blendFunction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html#blendFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the blend function, which determines how source and destination colors are combined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BlendFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlendFunction</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunctionChanged</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn blend_function(&self) -> crate::q_blend_equation::BlendFunction {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_blendFunction(
            self as *const crate::QBlendEquation,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QBlendEquation::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_metaObject(
                self as *const crate::QBlendEquation,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QBlendEquation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBlendEquation::QBlendEquation(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html#QBlendEquation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QBlendEquation.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QBlendEquation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_QBlendEquation(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html">QBlendEquation</a> class specifies the equation used for both the RGB blend equation and the Alpha blend equation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBlendEquation::QBlendEquation()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html">QBlendEquation</a> class specifies the equation used for both the RGB blend equation and the Alpha blend equation</p>
    /// <p>The blend equation is used to determine how a new pixel is combined with a pixel already in the framebuffer.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QBlendEquation> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_QBlendEquation1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QBlendEquation::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_qt_metacall(
            self as *const crate::QBlendEquation as *mut crate::QBlendEquation,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QBlendEquation::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_qt_metacast(
            self as *const crate::QBlendEquation as *mut crate::QBlendEquation,
            arg1,
        )
    }

    /// <p>Holds the blend function, which determines how source and destination colors are combined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquation::setBlendFunction(Qt3DRender::QBlendEquation::BlendFunction blendFunction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequation.html#blendFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the blend function, which determines how source and destination colors are combined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BlendFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlendFunction</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blendFunctionChanged</b></span>(BlendFunction <i>blendFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_blend_function(
        &self,
        blend_function: crate::q_blend_equation::BlendFunction,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_setBlendFunction(
            self as *const crate::QBlendEquation as *mut crate::QBlendEquation,
            blend_function,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBlendEquation::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBlendEquation::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_blend_equation_arguments {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments::Blending```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Blending(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Blending {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Blending(value)
        }
    }

    impl From<Blending> for ::std::os::raw::c_int {
        fn from(value: Blending) -> Self {
            value.0
        }
    }

    impl Blending {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Blending {
        /// C++ enum variant: <span style='color: green;'>```Zero = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Zero: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(0);
        /// C++ enum variant: <span style='color: green;'>```One = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const One: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(1);
        /// C++ enum variant: <span style='color: green;'>```SourceColor = 768```</span>
        #[allow(non_upper_case_globals)]
        pub const SourceColor: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(768);
        /// C++ enum variant: <span style='color: green;'>```SourceAlpha = 770```</span>
        #[allow(non_upper_case_globals)]
        pub const SourceAlpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(770);
        /// C++ enum variant: <span style='color: green;'>```Source1Alpha = 771```</span>
        #[allow(non_upper_case_globals)]
        pub const Source1Alpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(771);
        /// C++ enum variant: <span style='color: green;'>```Source1Color = 772```</span>
        #[allow(non_upper_case_globals)]
        pub const Source1Color: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(772);
        /// C++ enum variant: <span style='color: green;'>```DestinationColor = 774```</span>
        #[allow(non_upper_case_globals)]
        pub const DestinationColor: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(774);
        /// C++ enum variant: <span style='color: green;'>```DestinationAlpha = 772```</span>
        #[allow(non_upper_case_globals)]
        pub const DestinationAlpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(772);
        /// C++ enum variant: <span style='color: green;'>```SourceAlphaSaturate = 776```</span>
        #[allow(non_upper_case_globals)]
        pub const SourceAlphaSaturate: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(776);
        /// C++ enum variant: <span style='color: green;'>```ConstantColor = 32769```</span>
        #[allow(non_upper_case_globals)]
        pub const ConstantColor: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(32769);
        /// C++ enum variant: <span style='color: green;'>```ConstantAlpha = 32771```</span>
        #[allow(non_upper_case_globals)]
        pub const ConstantAlpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(32771);
        /// C++ enum variant: <span style='color: green;'>```OneMinusSourceColor = 769```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusSourceColor: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(769);
        /// C++ enum variant: <span style='color: green;'>```OneMinusSourceAlpha = 771```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusSourceAlpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(771);
        /// C++ enum variant: <span style='color: green;'>```OneMinusDestinationAlpha = 773```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusDestinationAlpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(773);
        /// C++ enum variant: <span style='color: green;'>```OneMinusDestinationColor = 775```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusDestinationColor: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(775);
        /// C++ enum variant: <span style='color: green;'>```OneMinusConstantColor = 32770```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusConstantColor: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(32770);
        /// C++ enum variant: <span style='color: green;'>```OneMinusConstantAlpha = 32772```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusConstantAlpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(32772);
        /// C++ enum variant: <span style='color: green;'>```OneMinusSource1Alpha = 32773```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusSource1Alpha: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(32773);
        /// C++ enum variant: <span style='color: green;'>```OneMinusSource1Color = 32774```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusSource1Color: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(32774);
        /// C++ enum variant: <span style='color: green;'>```OneMinusSource1Color0 = 32774```</span>
        #[allow(non_upper_case_globals)]
        pub const OneMinusSource1Color0: crate::q_blend_equation_arguments::Blending =
            crate::q_blend_equation_arguments::Blending(32774);
    }
}
/// <p>Encapsulates blending information: specifies how the incoming values (what's going to be drawn) are going to affect the existing values (what is already drawn).</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates blending information: specifies how the incoming values (what's going to be drawn) are going to affect the existing values (what is already drawn).</p>
/// <p>OpenGL pre-3.0: Set the same blend state for all draw buffers (one <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html">QBlendEquationArguments</a>) OpenGL 3.0-pre4.0: Set the same blend state for all draw buffers, but can disable blending for particular buffers (one <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html">QBlendEquationArguments</a> for setting glBlendFunc, n QBlendEquationArgumentss for enabling/disabling Draw Buffers) OpenGL 4.0+: Can set blend state individually for each draw buffer.</p></div>
#[repr(C)]
pub struct QBlendEquationArguments {
    _unused: u8,
}
impl QBlendEquationArguments {
    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquationArguments::setSourceRgb` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceRgb</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgbChanged</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_source_rgb(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setSourceRgb(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquationArguments::setDestinationRgb` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationRgb</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgbChanged</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_destination_rgb(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setDestinationRgb(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquationArguments::setSourceAlpha` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceAlpha</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlphaChanged</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_source_alpha(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setSourceAlpha(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquationArguments::setDestinationAlpha` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationAlpha</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlphaChanged</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_destination_alpha(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setDestinationAlpha(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">sourceRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">sourceAlpha</a> properties to <i>sourceRgba</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquationArguments::setSourceRgba` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#setSourceRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">sourceRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">sourceAlpha</a> properties to <i>sourceRgba</i>.</p></div>
    #[inline(always)]
    pub fn slot_set_source_rgba(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setSourceRgba(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">destinationRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">destinationAlpha</a> properties to <i>destinationRgba</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquationArguments::setDestinationRgba` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#setDestinationRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">destinationRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">destinationAlpha</a> properties to <i>destinationRgba</i>.</p></div>
    #[inline(always)]
    pub fn slot_set_destination_rgba(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setDestinationRgba(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBlendEquationArguments::setBufferIndex` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#bufferIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBufferIndex</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndexChanged</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_buffer_index(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setBufferIndex(int)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquationArguments::sourceRgbChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceRgb</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgbChanged</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn source_rgb_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2sourceRgbChanged(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquationArguments::sourceAlphaChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceAlpha</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlphaChanged</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn source_alpha_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2sourceAlphaChanged(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquationArguments::destinationRgbChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationRgb</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgbChanged</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn destination_rgb_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2destinationRgbChanged(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquationArguments::destinationAlphaChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationAlpha</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlphaChanged</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn destination_alpha_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2destinationAlphaChanged(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p>Notify that both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">sourceRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">sourceAlpha</a> properties have changed to <i>sourceRgba</i>.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquationArguments::sourceRgbaChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgbaChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Notify that both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">sourceRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">sourceAlpha</a> properties have changed to <i>sourceRgba</i>.</p></div>
    #[inline(always)]
    pub fn source_rgba_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2sourceRgbaChanged(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p>Notify that both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">destinationRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">destinationAlpha</a> properties have changed to <i>destinationRgba</i>.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquationArguments::destinationRgbaChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgbaChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Notify that both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">destinationRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">destinationAlpha</a> properties have changed to <i>destinationRgba</i>.</p></div>
    #[inline(always)]
    pub fn destination_rgba_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2destinationRgbaChanged(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// <p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlendEquationArguments::bufferIndexChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#bufferIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBufferIndex</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndexChanged</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn buffer_index_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2bufferIndexChanged(int)\0"),
            )
        }
    }

    /// <p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QBlendEquationArguments::bufferIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#bufferIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBufferIndex</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndexChanged</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn buffer_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_bufferIndex(
            self as *const crate::QBlendEquationArguments,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments::Blending Qt3DRender::QBlendEquationArguments::destinationAlpha() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationAlpha</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlphaChanged</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn destination_alpha(&self) -> crate::q_blend_equation_arguments::Blending {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_destinationAlpha(
            self as *const crate::QBlendEquationArguments,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments::Blending Qt3DRender::QBlendEquationArguments::destinationRgb() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationRgb</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgbChanged</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn destination_rgb(&self) -> crate::q_blend_equation_arguments::Blending {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_destinationRgb(
            self as *const crate::QBlendEquationArguments,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QBlendEquationArguments::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_metaObject(
                self as *const crate::QBlendEquationArguments,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QBlendEquationArguments.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBlendEquationArguments::QBlendEquationArguments(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#QBlendEquationArguments">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QBlendEquationArguments.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_QBlendEquationArguments(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent).as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulates blending information: specifies how the incoming values (what's going to be drawn) are going to affect the existing values (what is already drawn).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBlendEquationArguments::QBlendEquationArguments()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates blending information: specifies how the incoming values (what's going to be drawn) are going to affect the existing values (what is already drawn).</p>
    /// <p>OpenGL pre-3.0: Set the same blend state for all draw buffers (one <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html">QBlendEquationArguments</a>) OpenGL 3.0-pre4.0: Set the same blend state for all draw buffers, but can disable blending for particular buffers (one <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html">QBlendEquationArguments</a> for setting glBlendFunc, n QBlendEquationArgumentss for enabling/disabling Draw Buffers) OpenGL 4.0+: Can set blend state individually for each draw buffer.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_QBlendEquationArguments1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QBlendEquationArguments::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_qt_metacall(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QBlendEquationArguments::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_qt_metacast(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            arg1,
        )
    }

    /// <p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquationArguments::setBufferIndex(int index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#bufferIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the Draw Buffer that this <a href="http://doc.qt.io/qt-5/qml-qt3d-render-blendequationarguments.html">BlendEquationArguments</a> applies to. If negative, this will apply to all Draw Buffers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBufferIndex</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bufferIndexChanged</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_buffer_index(&self, index: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_setBufferIndex(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            index,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquationArguments::setDestinationAlpha(Qt3DRender::QBlendEquationArguments::Blending destinationAlpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationAlpha</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAlphaChanged</b></span>(Blending <i>destinationAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_destination_alpha(
        &self,
        destination_alpha: crate::q_blend_equation_arguments::Blending,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_setDestinationAlpha(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            destination_alpha,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquationArguments::setDestinationRgb(Qt3DRender::QBlendEquationArguments::Blending destinationRgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDestinationRgb</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRgbChanged</b></span>(Blending <i>destinationRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_destination_rgb(
        &self,
        destination_rgb: crate::q_blend_equation_arguments::Blending,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_setDestinationRgb(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            destination_rgb,
        )
    }

    /// <p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">destinationRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">destinationAlpha</a> properties to <i>destinationRgba</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquationArguments::setDestinationRgba(Qt3DRender::QBlendEquationArguments::Blending destinationRgba)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#setDestinationRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationRgb-prop">destinationRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#destinationAlpha-prop">destinationAlpha</a> properties to <i>destinationRgba</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_destination_rgba(
        &self,
        destination_rgba: crate::q_blend_equation_arguments::Blending,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_setDestinationRgba(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            destination_rgba,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquationArguments::setSourceAlpha(Qt3DRender::QBlendEquationArguments::Blending sourceAlpha)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceAlpha</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlphaChanged</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_source_alpha(
        &self,
        source_alpha: crate::q_blend_equation_arguments::Blending,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_setSourceAlpha(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            source_alpha,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquationArguments::setSourceRgb(Qt3DRender::QBlendEquationArguments::Blending sourceRgb)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceRgb</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgbChanged</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_source_rgb(&self, source_rgb: crate::q_blend_equation_arguments::Blending) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_setSourceRgb(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            source_rgb,
        )
    }

    /// <p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">sourceRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">sourceAlpha</a> properties to <i>sourceRgba</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBlendEquationArguments::setSourceRgba(Qt3DRender::QBlendEquationArguments::Blending sourceRgba)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#setSourceRgba">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Change both <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">sourceRgb</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">sourceAlpha</a> properties to <i>sourceRgba</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_source_rgba(&self, source_rgba: crate::q_blend_equation_arguments::Blending) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_setSourceRgba(
            self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments,
            source_rgba,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments::Blending Qt3DRender::QBlendEquationArguments::sourceAlpha() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceAlpha-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlpha</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceAlpha</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAlphaChanged</b></span>(Blending <i>sourceAlpha</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn source_alpha(&self) -> crate::q_blend_equation_arguments::Blending {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_sourceAlpha(
            self as *const crate::QBlendEquationArguments,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments::Blending Qt3DRender::QBlendEquationArguments::sourceRgb() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblendequationarguments.html#sourceRgb-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Blending </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgb</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSourceRgb</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRgbChanged</b></span>(Blending <i>sourceRgb</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn source_rgb(&self) -> crate::q_blend_equation_arguments::Blending {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_sourceRgb(
            self as *const crate::QBlendEquationArguments,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBlendEquationArguments::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBlendEquationArguments::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_buffer {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QBuffer```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QBuffer::BufferType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct BufferType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for BufferType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            BufferType(value)
        }
    }

    impl From<BufferType> for ::std::os::raw::c_int {
        fn from(value: BufferType) -> Self {
            value.0
        }
    }

    impl BufferType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl BufferType {
        /// C++ enum variant: <span style='color: green;'>```VertexBuffer = 34962```</span>
        #[allow(non_upper_case_globals)]
        pub const VertexBuffer: crate::q_buffer::BufferType = crate::q_buffer::BufferType(34962);
        /// C++ enum variant: <span style='color: green;'>```IndexBuffer = 34963```</span>
        #[allow(non_upper_case_globals)]
        pub const IndexBuffer: crate::q_buffer::BufferType = crate::q_buffer::BufferType(34963);
        /// C++ enum variant: <span style='color: green;'>```PixelPackBuffer = 35051```</span>
        #[allow(non_upper_case_globals)]
        pub const PixelPackBuffer: crate::q_buffer::BufferType = crate::q_buffer::BufferType(35051);
        /// C++ enum variant: <span style='color: green;'>```PixelUnpackBuffer = 35052```</span>
        #[allow(non_upper_case_globals)]
        pub const PixelUnpackBuffer: crate::q_buffer::BufferType =
            crate::q_buffer::BufferType(35052);
        /// C++ enum variant: <span style='color: green;'>```UniformBuffer = 35345```</span>
        #[allow(non_upper_case_globals)]
        pub const UniformBuffer: crate::q_buffer::BufferType = crate::q_buffer::BufferType(35345);
        /// C++ enum variant: <span style='color: green;'>```ShaderStorageBuffer = 37074```</span>
        #[allow(non_upper_case_globals)]
        pub const ShaderStorageBuffer: crate::q_buffer::BufferType =
            crate::q_buffer::BufferType(37074);
        /// C++ enum variant: <span style='color: green;'>```DrawIndirectBuffer = 36671```</span>
        #[allow(non_upper_case_globals)]
        pub const DrawIndirectBuffer: crate::q_buffer::BufferType =
            crate::q_buffer::BufferType(36671);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QBuffer::UsageType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct UsageType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for UsageType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            UsageType(value)
        }
    }

    impl From<UsageType> for ::std::os::raw::c_int {
        fn from(value: UsageType) -> Self {
            value.0
        }
    }

    impl UsageType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl UsageType {
        /// C++ enum variant: <span style='color: green;'>```StreamDraw = 35040```</span>
        #[allow(non_upper_case_globals)]
        pub const StreamDraw: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35040);
        /// C++ enum variant: <span style='color: green;'>```StreamRead = 35041```</span>
        #[allow(non_upper_case_globals)]
        pub const StreamRead: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35041);
        /// C++ enum variant: <span style='color: green;'>```StreamCopy = 35042```</span>
        #[allow(non_upper_case_globals)]
        pub const StreamCopy: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35042);
        /// C++ enum variant: <span style='color: green;'>```StaticDraw = 35044```</span>
        #[allow(non_upper_case_globals)]
        pub const StaticDraw: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35044);
        /// C++ enum variant: <span style='color: green;'>```StaticRead = 35045```</span>
        #[allow(non_upper_case_globals)]
        pub const StaticRead: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35045);
        /// C++ enum variant: <span style='color: green;'>```StaticCopy = 35046```</span>
        #[allow(non_upper_case_globals)]
        pub const StaticCopy: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35046);
        /// C++ enum variant: <span style='color: green;'>```DynamicDraw = 35048```</span>
        #[allow(non_upper_case_globals)]
        pub const DynamicDraw: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35048);
        /// C++ enum variant: <span style='color: green;'>```DynamicRead = 35049```</span>
        #[allow(non_upper_case_globals)]
        pub const DynamicRead: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35049);
        /// C++ enum variant: <span style='color: green;'>```DynamicCopy = 35050```</span>
        #[allow(non_upper_case_globals)]
        pub const DynamicCopy: crate::q_buffer::UsageType = crate::q_buffer::UsageType(35050);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QBuffer::AccessType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AccessType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AccessType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AccessType(value)
        }
    }

    impl From<AccessType> for ::std::os::raw::c_int {
        fn from(value: AccessType) -> Self {
            value.0
        }
    }

    impl AccessType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AccessType {
        /// C++ enum variant: <span style='color: green;'>```Write = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Write: crate::q_buffer::AccessType = crate::q_buffer::AccessType(1);
        /// C++ enum variant: <span style='color: green;'>```Read = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Read: crate::q_buffer::AccessType = crate::q_buffer::AccessType(2);
        /// C++ enum variant: <span style='color: green;'>```ReadWrite = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const ReadWrite: crate::q_buffer::AccessType = crate::q_buffer::AccessType(3);
    }
}
/// <p>Provides a data store for raw data to later be used as vertices or uniforms.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QBuffer```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a data store for raw data to later be used as vertices or uniforms.</p>
/// <p>Data can either be provided directly using <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#setData">QBuffer::setData</a>() or by specifying a generator with <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#setDataGenerator">QBuffer::setDataGenerator</a>() and providing a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#QBufferDataGeneratorPtr-typedef">Qt3DRender::QBufferDataGeneratorPtr</a>.</p>
/// <p>When using a generator the data will be loaded asynchronously in a job. The loaded data can be read back if the <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#syncData-prop">QBuffer::syncData</a> flag is set to true.</p></div>
#[repr(C)]
pub struct QBuffer {
    _unused: u8,
}
impl QBuffer {
    /// <p>Holds the buffer type.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBuffer::setType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#type-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>type</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setType</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>typeChanged</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_type(&self) -> ::qt_core::Receiver<(crate::q_buffer::BufferType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setType(Qt3DRender::QBuffer::BufferType)\0",
                ),
            )
        }
    }

    /// <p>Holds the buffer usage.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBuffer::setUsage` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#usage-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer usage.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> UsageType </td><td class="memItemRight bottomAlign"><span class="name"><b>usage</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUsage</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>usageChanged</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_usage(&self) -> ::qt_core::Receiver<(crate::q_buffer::UsageType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setUsage(Qt3DRender::QBuffer::UsageType)\0",
                ),
            )
        }
    }

    /// <p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBuffer::setSyncData` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#syncData-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    /// <p><b>Note: </b>: This has no effect if the buffer's data was set directly using the data property.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isSyncData</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSyncData</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>syncDataChanged</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_sync_data(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSyncData(bool)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QBuffer::setAccessType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#accessType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AccessType </td><td class="memItemRight bottomAlign"><span class="name"><b>accessType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccessType</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessTypeChanged</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_access_type(&self) -> ::qt_core::Receiver<(crate::q_buffer::AccessType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setAccessType(Qt3DRender::QBuffer::AccessType)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted with <i>bytes</i> when data changes.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBuffer::dataChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#dataChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted with <i>bytes</i> when data changes.</p></div>
    #[inline(always)]
    pub fn data_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2dataChanged(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the buffer type.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBuffer::typeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#type-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>type</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setType</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>typeChanged</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn type_changed(&self) -> ::qt_core::Signal<(crate::q_buffer::BufferType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2typeChanged(Qt3DRender::QBuffer::BufferType)\0",
                ),
            )
        }
    }

    /// <p>Holds the buffer usage.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBuffer::usageChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#usage-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer usage.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> UsageType </td><td class="memItemRight bottomAlign"><span class="name"><b>usage</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUsage</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>usageChanged</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn usage_changed(&self) -> ::qt_core::Signal<(crate::q_buffer::UsageType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2usageChanged(Qt3DRender::QBuffer::UsageType)\0",
                ),
            )
        }
    }

    /// <p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBuffer::syncDataChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#syncData-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    /// <p><b>Note: </b>: This has no effect if the buffer's data was set directly using the data property.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isSyncData</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSyncData</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>syncDataChanged</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn sync_data_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2syncDataChanged(bool)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBuffer::accessTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#accessType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AccessType </td><td class="memItemRight bottomAlign"><span class="name"><b>accessType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccessType</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessTypeChanged</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn access_type_changed(&self) -> ::qt_core::Signal<(crate::q_buffer::AccessType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2accessTypeChanged(Qt3DRender::QBuffer::AccessType)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when data becomes available.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBuffer::dataAvailable` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#dataAvailable">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when data becomes available.</p></div>
    #[inline(always)]
    pub fn data_available(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2dataAvailable()\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer::AccessType Qt3DRender::QBuffer::accessType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#accessType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AccessType </td><td class="memItemRight bottomAlign"><span class="name"><b>accessType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccessType</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessTypeChanged</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn access_type(&self) -> crate::q_buffer::AccessType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_accessType(
            self as *const crate::QBuffer,
        )
    }

    /// <p>Returns the data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QBuffer::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#setData">setData</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_data(
                self as *const crate::QBuffer,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QBuffer::isSyncData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#syncData-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    /// <p><b>Note: </b>: This has no effect if the buffer's data was set directly using the data property.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isSyncData</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSyncData</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>syncDataChanged</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_sync_data(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_isSyncData(
            self as *const crate::QBuffer,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QBuffer::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_metaObject(
                self as *const crate::QBuffer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QBuffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType ty = …, Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#QBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QBuffer.</p></div>
    #[inline(always)]
    pub unsafe fn from_buffer_type_q_node(
        ty: crate::q_buffer::BufferType,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_QBuffer(
                ty,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides a data store for raw data to later be used as vertices or uniforms.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBuffer::QBuffer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a data store for raw data to later be used as vertices or uniforms.</p>
    /// <p>Data can either be provided directly using <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#setData">QBuffer::setData</a>() or by specifying a generator with <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#setDataGenerator">QBuffer::setDataGenerator</a>() and providing a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#QBufferDataGeneratorPtr-typedef">Qt3DRender::QBufferDataGeneratorPtr</a>.</p>
    /// <p>When using a generator the data will be loaded asynchronously in a job. The loaded data can be read back if the <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#syncData-prop">QBuffer::syncData</a> flag is set to true.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::QBuffer> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_QBuffer1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Default constructs an instance of QBuffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBuffer::QBuffer(Qt3DRender::QBuffer::BufferType ty = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#QBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QBuffer.</p></div>
    #[inline(always)]
    pub unsafe fn from_buffer_type(
        ty: crate::q_buffer::BufferType,
    ) -> ::qt_core::QBox<crate::QBuffer> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_QBuffer3(ty) };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">QBuffer</a> with <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBuffer::QBuffer(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#QBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">QBuffer</a> with <i>parent</i>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn from_q_node(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_QBuffer8(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QBuffer::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_qt_metacall(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QBuffer::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_qt_metacast(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            arg1,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBuffer::setAccessType(Qt3DRender::QBuffer::AccessType access)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#accessType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AccessType </td><td class="memItemRight bottomAlign"><span class="name"><b>accessType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccessType</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessTypeChanged</b></span>(AccessType <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_access_type(&self, access: crate::q_buffer::AccessType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_setAccessType(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            access,
        )
    }

    /// <p>Sets <i>bytes</i> as data.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBuffer::setData(const QByteArray& bytes)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#setData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <i>bytes</i> as data.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#data">data</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_data(
        &self,
        bytes: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_setData(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(bytes)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBuffer::setSyncData(bool syncData)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#syncData-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the syncData flag. When syncData is true, this will force data created by a <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> to also be updated on the frontend <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> node. By default syncData is false.</p>
    /// <p><b>Note: </b>: This has no effect if the buffer's data was set directly using the data property.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isSyncData</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSyncData</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>syncDataChanged</b></span>(bool <i>syncData</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_sync_data(&self, sync_data: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_setSyncData(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            sync_data,
        )
    }

    /// <p>Holds the buffer type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBuffer::setType(Qt3DRender::QBuffer::BufferType type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#type-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>type</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setType</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>typeChanged</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_type(&self, type_: crate::q_buffer::BufferType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_setType(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            type_,
        )
    }

    /// <p>Holds the buffer usage.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QBuffer::setUsage(Qt3DRender::QBuffer::UsageType usage)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#usage-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer usage.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> UsageType </td><td class="memItemRight bottomAlign"><span class="name"><b>usage</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUsage</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>usageChanged</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_usage(&self, usage: crate::q_buffer::UsageType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_setUsage(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            usage,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBuffer::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBuffer::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the buffer type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer::BufferType Qt3DRender::QBuffer::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#type-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>type</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setType</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>typeChanged</b></span>(BufferType <i>type</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn type_(&self) -> crate::q_buffer::BufferType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_type(self as *const crate::QBuffer)
    }

    /// <p>Updates the data by replacing it with <i>bytes</i> at <i>offset</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBuffer::updateData(int offset, const QByteArray& bytes)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#updateData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Updates the data by replacing it with <i>bytes</i> at <i>offset</i>.</p></div>
    #[inline(always)]
    pub unsafe fn update_data(
        &self,
        offset: ::std::os::raw::c_int,
        bytes: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_updateData(
            self as *const crate::QBuffer as *mut crate::QBuffer,
            offset,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(bytes)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the buffer usage.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer::UsageType Qt3DRender::QBuffer::usage() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html#usage-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the buffer usage.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> UsageType </td><td class="memItemRight bottomAlign"><span class="name"><b>usage</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setUsage</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>usageChanged</b></span>(UsageType <i>usage</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn usage(&self) -> crate::q_buffer::UsageType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_usage(self as *const crate::QBuffer)
    }
}

/// <p>Base class of all FrameGraph configuration nodes.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QFrameGraphNode```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Base class of all FrameGraph configuration nodes.</p>
/// <p>This class is rarely instanced directly since it doesn't provide any frame graph specific behavior, although it can be convenient to use for grouping other nodes together in dynamic frame graphs. The actual behavior comes from the subclasses.</p>
/// <p>The subclasses are:</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>class</th><th>description</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">Qt3DRender::QCameraSelector</a></td><td>Select camera from all available cameras in the scene</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">Qt3DRender::QClearBuffers</a></td><td>Specify which buffers to clear and to what values</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">Qt3DRender::QDispatchCompute</a></td><td>Specify Compute operation kernels</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">Qt3DRender::QFrustumCulling</a></td><td>Enable frustum culling</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a></td><td>Select which layers to draw</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a></td><td>Disable drawing</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">Qt3DRender::QRenderPassFilter</a></td><td>Select which render passes to draw</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">Qt3DRender::QRenderStateSet</a></td><td>Set render states</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">Qt3DRender::QRenderSurfaceSelector</a></td><td>Select which surface to draw to</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a></td><td>Select which <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> to draw to</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">Qt3DRender::QSortPolicy</a></td><td>Specify how entities are sorted to determine draw order</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">Qt3DRender::QTechniqueFilter</a></td><td>Select which techniques to draw</td></tr>
/// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">Qt3DRender::QViewport</a></td><td>Specify viewport</td></tr>
/// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">Qt3DRender::QMemoryBarrier</a></td><td>Places a memory barrier</td></tr>
/// </tbody></table></div></div>
#[repr(C)]
pub struct QFrameGraphNode {
    _unused: u8,
}
impl QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QFrameGraphNode::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_metaObject(
                self as *const crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QFrameGraphNode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFrameGraphNode::QFrameGraphNode(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html#QFrameGraphNode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QFrameGraphNode.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_QFrameGraphNode(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Base class of all FrameGraph configuration nodes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFrameGraphNode::QFrameGraphNode()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Base class of all FrameGraph configuration nodes.</p>
    /// <p>This class is rarely instanced directly since it doesn't provide any frame graph specific behavior, although it can be convenient to use for grouping other nodes together in dynamic frame graphs. The actual behavior comes from the subclasses.</p>
    /// <p>The subclasses are:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>class</th><th>description</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">Qt3DRender::QCameraSelector</a></td><td>Select camera from all available cameras in the scene</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">Qt3DRender::QClearBuffers</a></td><td>Specify which buffers to clear and to what values</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">Qt3DRender::QDispatchCompute</a></td><td>Specify Compute operation kernels</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">Qt3DRender::QFrustumCulling</a></td><td>Enable frustum culling</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a></td><td>Select which layers to draw</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a></td><td>Disable drawing</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">Qt3DRender::QRenderPassFilter</a></td><td>Select which render passes to draw</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">Qt3DRender::QRenderStateSet</a></td><td>Set render states</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">Qt3DRender::QRenderSurfaceSelector</a></td><td>Select which surface to draw to</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a></td><td>Select which <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> to draw to</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">Qt3DRender::QSortPolicy</a></td><td>Specify how entities are sorted to determine draw order</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">Qt3DRender::QTechniqueFilter</a></td><td>Select which techniques to draw</td></tr>
    /// <tr valign="top" class="odd"><td><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">Qt3DRender::QViewport</a></td><td>Specify viewport</td></tr>
    /// <tr valign="top" class="even"><td><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">Qt3DRender::QMemoryBarrier</a></td><td>Places a memory barrier</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QFrameGraphNode> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_QFrameGraphNode1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns a pointer to the parent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* Qt3DRender::QFrameGraphNode::parentFrameGraphNode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html#parentFrameGraphNode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the parent.</p></div>
    #[inline(always)]
    pub unsafe fn parent_frame_graph_node(&self) -> ::qt_core::QPtr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_parentFrameGraphNode(
                self as *const crate::QFrameGraphNode,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QFrameGraphNode::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_qt_metacall(
            self as *const crate::QFrameGraphNode as *mut crate::QFrameGraphNode,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QFrameGraphNode::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_qt_metacast(
            self as *const crate::QFrameGraphNode as *mut crate::QFrameGraphNode,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFrameGraphNode::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFrameGraphNode::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Exchanges buffer data between GPU and CPU.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QBufferCapture```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffercapture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchanges buffer data between GPU and CPU.</p></div>
#[repr(C)]
pub struct QBufferCapture {
    _unused: u8,
}
impl QBufferCapture {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QBufferCapture::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_metaObject(
                self as *const crate::QBufferCapture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QBufferCapture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBufferCapture::QBufferCapture(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffercapture.html#QBufferCapture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QBufferCapture.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QBufferCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_QBufferCapture(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Exchanges buffer data between GPU and CPU.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBufferCapture::QBufferCapture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffercapture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchanges buffer data between GPU and CPU.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QBufferCapture> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_QBufferCapture1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QBufferCapture::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_qt_metacall(
            self as *const crate::QBufferCapture as *mut crate::QBufferCapture,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QBufferCapture::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_qt_metacast(
            self as *const crate::QBufferCapture as *mut crate::QBufferCapture,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBufferCapture::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBufferCapture::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Provides a mechanism to generate buffer data from a job.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QBufferDataGenerator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a mechanism to generate buffer data from a job.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">Qt3DRender::QBufferDataGenerator</a> should be subclassed to provide a way to fill the data of a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a>. Such functors are executed at runtime in a Qt 3D job (likely in parallel with many other jobs). When providing a functor you must implement the <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html#operator-28-29">operator</a>() which will be called to generate the actual data. You must make sure that you have stored copies of anything you might need for it to execute properly. You should also implement the operator==. It will be used to compare with other functors and based on that allow the renderer to decide if a new functor should be executed or not.</p>
/// <p><b>Note: </b>functors are useful when you can build data from a few set of attributes (e.g: building a sphere from a radius property). If you already have access to the buffer data, using Qt3DRender::QBuffer::setData() is likely more efficient.</p><pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> createSphereMeshVertexData(<span class="type">float</span> radius<span class="operator">,</span> <span class="type">int</span> rings<span class="operator">,</span> <span class="type">int</span> slices)
///   {
/// &#32;     <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   }
///
///   <span class="keyword">class</span> SphereVertexDataFunctor : <span class="keyword">public</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">QBufferDataGenerator</a></span>
///   {
///   <span class="keyword">public</span>:
/// &#32;     SphereVertexDataFunctor(<span class="type">int</span> rings<span class="operator">,</span> <span class="type">int</span> slices<span class="operator">,</span> <span class="type">float</span> radius)
/// &#32;   &#32;     : m_rings(rings)
/// &#32;   &#32;     <span class="operator">,</span> m_slices(slices)
/// &#32;   &#32;     <span class="operator">,</span> m_radius(radius)
/// &#32;     {}
///
/// &#32;     <span class="type"><a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a></span> <span class="keyword">operator</span> ()() Q_DECL_OVERRIDE
/// &#32;     {
/// &#32;   &#32;     <span class="keyword">return</span> createSphereMeshVertexData(m_radius<span class="operator">,</span> m_rings<span class="operator">,</span> m_slices);
/// &#32;     }
///
/// &#32;     bool <span class="keyword">operator</span> <span class="operator">=</span><span class="operator">=</span>(<span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html">QBufferDataGenerator</a></span> <span class="operator">&amp;</span>other) <span class="keyword">const</span> Q_DECL_OVERRIDE
/// &#32;     {
/// &#32;   &#32;     <span class="keyword">const</span> SphereVertexDataFunctor <span class="operator">*</span>otherFunctor <span class="operator">=</span> functor_cast<span class="operator">&lt;</span>SphereVertexDataFunctor<span class="operator">&gt;</span>(<span class="operator">&amp;</span>other);
/// &#32;   &#32;     <span class="keyword">if</span> (otherFunctor <span class="operator">!</span><span class="operator">=</span> nullptr)
/// &#32;   &#32;   &#32;     <span class="keyword">return</span> (otherFunctor<span class="operator">-</span><span class="operator">&gt;</span>m_rings <span class="operator">=</span><span class="operator">=</span> m_rings <span class="operator">&amp;</span><span class="operator">&amp;</span>
/// &#32;   &#32;   &#32;   &#32;   &#32;     otherFunctor<span class="operator">-</span><span class="operator">&gt;</span>m_slices <span class="operator">=</span><span class="operator">=</span> m_slices <span class="operator">&amp;</span><span class="operator">&amp;</span>
/// &#32;   &#32;   &#32;   &#32;   &#32;     otherFunctor<span class="operator">-</span><span class="operator">&gt;</span>m_radius <span class="operator">=</span><span class="operator">=</span> m_radius);
/// &#32;   &#32;     <span class="keyword">return</span> <span class="keyword">false</span>;
/// &#32;     }
///
/// &#32;     QT3D_FUNCTOR(SphereVertexDataFunctor)
///
///   <span class="keyword">private</span>:
/// &#32;     <span class="type">int</span> m_rings;
/// &#32;     <span class="type">int</span> m_slices;
/// &#32;     <span class="type">float</span> m_radius;
///   };
///
/// </pre>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html#QT3D_FUNCTOR">QT3D_FUNCTOR</a> macro should be added when subclassing. This allows you to use <a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html#functor_cast">functor_cast</a> in your comparison operator to make sure that the other functor is of the same type as the one your are trying to compare against.</p></div>
#[repr(C)]
pub struct QBufferDataGenerator {
    _unused: u8,
}
impl QBufferDataGenerator {
    /// <p>Should be implemented to return the buffer data as a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a> when called.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QByteArray Qt3DRender::QBufferDataGenerator::operator()()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html#operator-28-29">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Should be implemented to return the buffer data as a <a href="http://doc.qt.io/qt-5/qbytearray.html">QByteArray</a> when called.</p></div>
    #[inline(always)]
    pub unsafe fn call(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferDataGenerator_operator__(
                self as *const crate::QBufferDataGenerator as *mut crate::QBufferDataGenerator,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_camera_lens {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QCameraLens```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QCameraLens::ProjectionType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ProjectionType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ProjectionType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ProjectionType(value)
        }
    }

    impl From<ProjectionType> for ::std::os::raw::c_int {
        fn from(value: ProjectionType) -> Self {
            value.0
        }
    }

    impl ProjectionType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ProjectionType {
        /// C++ enum variant: <span style='color: green;'>```OrthographicProjection = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const OrthographicProjection: crate::q_camera_lens::ProjectionType =
            crate::q_camera_lens::ProjectionType(0);
        /// C++ enum variant: <span style='color: green;'>```PerspectiveProjection = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const PerspectiveProjection: crate::q_camera_lens::ProjectionType =
            crate::q_camera_lens::ProjectionType(1);
        /// C++ enum variant: <span style='color: green;'>```FrustumProjection = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const FrustumProjection: crate::q_camera_lens::ProjectionType =
            crate::q_camera_lens::ProjectionType(2);
        /// C++ enum variant: <span style='color: green;'>```CustomProjection = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const CustomProjection: crate::q_camera_lens::ProjectionType =
            crate::q_camera_lens::ProjectionType(3);
    }
}
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">Qt3DRender::QCameraLens</a> specifies the projection matrix that will be used to define a Camera for a 3D scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QCameraLens```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">Qt3DRender::QCameraLens</a> specifies the projection matrix that will be used to define a Camera for a 3D scene.</p></div>
#[repr(C)]
pub struct QCameraLens {
    _unused: u8,
}
impl QCameraLens {
    /// <p>Sets the lens' projection type <i>projectionType</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setProjectionType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the lens' projection type <i>projectionType</i>.</p>
    /// <p><b>Note: </b>Qt3DRender::QCameraLens::Frustum and <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a> are two different ways of specifying the same projection.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionType-prop">projectionType</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionType-prop">projectionType</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_projection_type(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_camera_lens::ProjectionType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setProjectionType(Qt3DRender::QCameraLens::ProjectionType)\0",
                ),
            )
        }
    }

    /// <p>Sets the projection's near plane to <i>nearPlane</i>. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setNearPlane` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setNearPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's near plane to <i>nearPlane</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#nearPlane-prop">nearPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#nearPlane-prop">nearPlane</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_near_plane(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setNearPlane(float)\0"),
            )
        }
    }

    /// <p>Sets the projection's far plane to <i>farPlane</i>. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setFarPlane` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFarPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's far plane to <i>farPlane</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#farPlane-prop">farPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#farPlane-prop">farPlane</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_far_plane(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFarPlane(float)\0"),
            )
        }
    }

    /// <p>Sets the projection's field of view to <i>fieldOfView</i> degrees. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setFieldOfView` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFieldOfView">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's field of view to <i>fieldOfView</i> degrees. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#fieldOfView-prop">fieldOfView</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#fieldOfView-prop">fieldOfView</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_field_of_view(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFieldOfView(float)\0"),
            )
        }
    }

    /// <p>Sets the projection's aspect ratio to <i>aspectRatio</i>. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setAspectRatio` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setAspectRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's aspect ratio to <i>aspectRatio</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#aspectRatio-prop">aspectRatio</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#aspectRatio-prop">aspectRatio</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_aspect_ratio(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setAspectRatio(float)\0"),
            )
        }
    }

    /// <p>Sets the projection's lower left window coordinate to <i>left</i>. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setLeft` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setLeft">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's lower left window coordinate to <i>left</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#left-prop">left</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#left-prop">left</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_left(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLeft(float)\0"),
            )
        }
    }

    /// <p>Sets the projection's upper right window coordinate to <i>right</i>. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setRight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setRight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's upper right window coordinate to <i>right</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#right-prop">right</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#right-prop">right</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_right(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setRight(float)\0"),
            )
        }
    }

    /// <p>Sets the projection's bottom window coordinate to <i>bottom</i>. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setBottom` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setBottom">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's bottom window coordinate to <i>bottom</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#bottom-prop">bottom</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#bottom-prop">bottom</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_bottom(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setBottom(float)\0"),
            )
        }
    }

    /// <p>Sets the projection's top window coordinate to <i>top</i>. This triggers a projection matrix update.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setTop` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setTop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's top window coordinate to <i>top</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#top-prop">top</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#top-prop">top</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_top(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setTop(float)\0"),
            )
        }
    }

    /// <p>Sets the project matrix to <i>projectionMatrix</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setProjectionMatrix` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the project matrix to <i>projectionMatrix</i>.</p>
    /// <p><b>Note: </b>This will set the projection type to <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::CustomProjection</a> and thus ignore all other camera parameters that might have been specified.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionMatrix-prop">projectionMatrix</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionMatrix-prop">projectionMatrix</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_projection_matrix(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_gui::QMatrix4X4,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setProjectionMatrix(QMatrix4x4 const &)\0",
                ),
            )
        }
    }

    /// <p>Sets the camera lens' <i>exposure</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraLens::setExposure` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setExposure">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera lens' <i>exposure</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#exposure-prop">exposure</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#exposure-prop">exposure</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_exposure(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setExposure(float)\0"),
            )
        }
    }

    /// <p>Holds the type of the camera projection.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::projectionTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the type of the camera projection.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ProjectionType </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionType">setProjectionType</a></b></span>(ProjectionType <i>projectionType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionTypeChanged</b></span>(QCameraLens::ProjectionType <i>projectionType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::ProjectionType</a>.</p></div>
    #[inline(always)]
    pub fn projection_type_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_camera_lens::ProjectionType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2projectionTypeChanged(Qt3DRender::QCameraLens::ProjectionType)\0",
                ),
            )
        }
    }

    /// <p>Holds the current near plane of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::nearPlaneChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#nearPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current near plane of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setNearPlane">setNearPlane</a></b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlaneChanged</b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn near_plane_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2nearPlaneChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current near plane of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::farPlaneChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#farPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current near plane of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFarPlane">setFarPlane</a></b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlaneChanged</b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn far_plane_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2farPlaneChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current field of view of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::fieldOfViewChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#fieldOfView-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current field of view of the camera lens.</p>
    /// <p><b>Note: </b>: The return value may be undefined if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfView</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFieldOfView">setFieldOfView</a></b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfViewChanged</b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn field_of_view_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2fieldOfViewChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current aspect ratio of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::aspectRatioChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#aspectRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current aspect ratio of the camera lens.</p>
    /// <p><b>Note: </b>: The return value may be undefined if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setAspectRatio">setAspectRatio</a></b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatioChanged</b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn aspect_ratio_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2aspectRatioChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current left plane of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::leftChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current left plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setLeft">setLeft</a></b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn left_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2leftChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current right plane of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::rightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#right-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current right plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>right</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setRight">setRight</a></b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rightChanged</b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn right_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2rightChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current bottom plane of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::bottomChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current bottom plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setBottom">setBottom</a></b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn bottom_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2bottomChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current top plane of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::topChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current top plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setTop">setTop</a></b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>topChanged</b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn top_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2topChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current projection matrix of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::projectionMatrixChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionMatrix-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current projection matrix of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QMatrix4x4 </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrix</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionMatrix">setProjectionMatrix</a></b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrixChanged</b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn projection_matrix_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QMatrix4X4,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2projectionMatrixChanged(QMatrix4x4 const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the current exposure of the camera lens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraLens::exposureChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#exposure-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current exposure of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>exposure</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setExposure">setExposure</a></b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>exposureChanged</b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn exposure_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2exposureChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current aspect ratio of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::aspectRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#aspectRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current aspect ratio of the camera lens.</p>
    /// <p><b>Note: </b>: The return value may be undefined if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setAspectRatio">setAspectRatio</a></b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatioChanged</b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn aspect_ratio(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_aspectRatio(
            self as *const crate::QCameraLens,
        )
    }

    /// <p>Holds the current bottom plane of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::bottom() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current bottom plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setBottom">setBottom</a></b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn bottom(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_bottom(
            self as *const crate::QCameraLens,
        )
    }

    /// <p>Holds the current exposure of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::exposure() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#exposure-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current exposure of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>exposure</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setExposure">setExposure</a></b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>exposureChanged</b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn exposure(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_exposure(
            self as *const crate::QCameraLens,
        )
    }

    /// <p>Holds the current near plane of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::farPlane() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#farPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current near plane of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFarPlane">setFarPlane</a></b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlaneChanged</b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn far_plane(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_farPlane(
            self as *const crate::QCameraLens,
        )
    }

    /// <p>Holds the current field of view of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::fieldOfView() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#fieldOfView-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current field of view of the camera lens.</p>
    /// <p><b>Note: </b>: The return value may be undefined if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfView</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFieldOfView">setFieldOfView</a></b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfViewChanged</b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn field_of_view(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_fieldOfView(
            self as *const crate::QCameraLens,
        )
    }

    /// <p>Holds the current left plane of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::left() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current left plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setLeft">setLeft</a></b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn left(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_left(
            self as *const crate::QCameraLens,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QCameraLens::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_metaObject(
                self as *const crate::QCameraLens,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the current near plane of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::nearPlane() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#nearPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current near plane of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setNearPlane">setNearPlane</a></b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlaneChanged</b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn near_plane(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_nearPlane(
            self as *const crate::QCameraLens,
        )
    }

    /// <p>Constructs a <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">QCameraLens</a> with given <i>parent</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCameraLens::QCameraLens(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#QCameraLens">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">QCameraLens</a> with given <i>parent</i></p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_QCameraLens(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">Qt3DRender::QCameraLens</a> specifies the projection matrix that will be used to define a Camera for a 3D scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCameraLens::QCameraLens()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html">Qt3DRender::QCameraLens</a> specifies the projection matrix that will be used to define a Camera for a 3D scene.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QCameraLens> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_QCameraLens1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Holds the current projection matrix of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 Qt3DRender::QCameraLens::projectionMatrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionMatrix-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current projection matrix of the camera lens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QMatrix4x4 </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrix</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionMatrix">setProjectionMatrix</a></b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrixChanged</b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn projection_matrix(&self) -> ::cpp_core::CppBox<::qt_gui::QMatrix4X4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_projectionMatrix(
                self as *const crate::QCameraLens,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the type of the camera projection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens::ProjectionType Qt3DRender::QCameraLens::projectionType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the type of the camera projection.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ProjectionType </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionType">setProjectionType</a></b></span>(ProjectionType <i>projectionType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionTypeChanged</b></span>(QCameraLens::ProjectionType <i>projectionType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::ProjectionType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn projection_type(&self) -> crate::q_camera_lens::ProjectionType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_projectionType(
            self as *const crate::QCameraLens,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QCameraLens::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_qt_metacall(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QCameraLens::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_qt_metacast(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            arg1,
        )
    }

    /// <p>Holds the current right plane of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::right() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#right-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current right plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>right</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setRight">setRight</a></b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rightChanged</b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn right(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_right(
            self as *const crate::QCameraLens,
        )
    }

    /// <p>Sets the projection's aspect ratio to <i>aspectRatio</i>. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setAspectRatio(float aspectRatio)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setAspectRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's aspect ratio to <i>aspectRatio</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#aspectRatio-prop">aspectRatio</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#aspectRatio-prop">aspectRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_aspect_ratio(&self, aspect_ratio: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setAspectRatio(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            aspect_ratio,
        )
    }

    /// <p>Sets the projection's bottom window coordinate to <i>bottom</i>. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setBottom(float bottom)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setBottom">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's bottom window coordinate to <i>bottom</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#bottom-prop">bottom</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#bottom-prop">bottom</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom(&self, bottom: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setBottom(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            bottom,
        )
    }

    /// <p>Sets the camera lens' <i>exposure</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setExposure(float exposure)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setExposure">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera lens' <i>exposure</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#exposure-prop">exposure</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#exposure-prop">exposure</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_exposure(&self, exposure: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setExposure(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            exposure,
        )
    }

    /// <p>Sets the projection's far plane to <i>farPlane</i>. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setFarPlane(float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFarPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's far plane to <i>farPlane</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#farPlane-prop">farPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#farPlane-prop">farPlane</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_far_plane(&self, far_plane: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setFarPlane(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            far_plane,
        )
    }

    /// <p>Sets the projection's field of view to <i>fieldOfView</i> degrees. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setFieldOfView(float fieldOfView)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFieldOfView">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's field of view to <i>fieldOfView</i> degrees. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is not <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#fieldOfView-prop">fieldOfView</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#fieldOfView-prop">fieldOfView</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_field_of_view(&self, field_of_view: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setFieldOfView(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            field_of_view,
        )
    }

    /// <p>Defines an orthographic projection based on <i>left</i>, <i>right</i>, <i>bottom</i>, <i>top</i>, <i>nearPlane</i>, <i>farPlane</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCameraLens::setFrustumProjection(float left, float right, float bottom, float top, float nearPlane, float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setFrustumProjection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines an orthographic projection based on <i>left</i>, <i>right</i>, <i>bottom</i>, <i>top</i>, <i>nearPlane</i>, <i>farPlane</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_frustum_projection(
        &self,
        left: ::std::os::raw::c_float,
        right: ::std::os::raw::c_float,
        bottom: ::std::os::raw::c_float,
        top: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
        far_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setFrustumProjection(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            left,
            right,
            bottom,
            top,
            near_plane,
            far_plane,
        )
    }

    /// <p>Sets the projection's lower left window coordinate to <i>left</i>. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setLeft(float left)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setLeft">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's lower left window coordinate to <i>left</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#left-prop">left</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#left-prop">left</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_left(&self, left: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setLeft(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            left,
        )
    }

    /// <p>Sets the projection's near plane to <i>nearPlane</i>. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setNearPlane(float nearPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setNearPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's near plane to <i>nearPlane</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#nearPlane-prop">nearPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#nearPlane-prop">nearPlane</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_near_plane(&self, near_plane: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setNearPlane(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            near_plane,
        )
    }

    /// <p>Defines an orthographic projection based on <i>left</i>, <i>right</i>, <i>bottom</i>, <i>top</i>, <i>nearPlane</i>, <i>farPlane</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCameraLens::setOrthographicProjection(float left, float right, float bottom, float top, float nearPlane, float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setOrthographicProjection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines an orthographic projection based on <i>left</i>, <i>right</i>, <i>bottom</i>, <i>top</i>, <i>nearPlane</i>, <i>farPlane</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_orthographic_projection(
        &self,
        left: ::std::os::raw::c_float,
        right: ::std::os::raw::c_float,
        bottom: ::std::os::raw::c_float,
        top: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
        far_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setOrthographicProjection(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            left,
            right,
            bottom,
            top,
            near_plane,
            far_plane,
        )
    }

    /// <p>Defines a perspective projection based on <i>fieldOfView</i>, <i>aspectRatio</i>, <i>nearPlane</i>, <i>farPlane</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCameraLens::setPerspectiveProjection(float fieldOfView, float aspect, float nearPlane, float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setPerspectiveProjection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines a perspective projection based on <i>fieldOfView</i>, <i>aspectRatio</i>, <i>nearPlane</i>, <i>farPlane</i>.</p></div>
    #[inline(always)]
    pub unsafe fn set_perspective_projection(
        &self,
        field_of_view: ::std::os::raw::c_float,
        aspect: ::std::os::raw::c_float,
        near_plane: ::std::os::raw::c_float,
        far_plane: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setPerspectiveProjection(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            field_of_view,
            aspect,
            near_plane,
            far_plane,
        )
    }

    /// <p>Sets the project matrix to <i>projectionMatrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setProjectionMatrix(const QMatrix4x4& projectionMatrix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the project matrix to <i>projectionMatrix</i>.</p>
    /// <p><b>Note: </b>This will set the projection type to <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::CustomProjection</a> and thus ignore all other camera parameters that might have been specified.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionMatrix-prop">projectionMatrix</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionMatrix-prop">projectionMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_projection_matrix(
        &self,
        projection_matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QMatrix4X4>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setProjectionMatrix(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QMatrix4X4>>::cast_into(
                projection_matrix,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Sets the lens' projection type <i>projectionType</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setProjectionType(Qt3DRender::QCameraLens::ProjectionType projectionType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setProjectionType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the lens' projection type <i>projectionType</i>.</p>
    /// <p><b>Note: </b>Qt3DRender::QCameraLens::Frustum and <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a> are two different ways of specifying the same projection.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionType-prop">projectionType</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#projectionType-prop">projectionType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_projection_type(
        &self,
        projection_type: crate::q_camera_lens::ProjectionType,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setProjectionType(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            projection_type,
        )
    }

    /// <p>Sets the projection's upper right window coordinate to <i>right</i>. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setRight(float right)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setRight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's upper right window coordinate to <i>right</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#right-prop">right</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#right-prop">right</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_right(&self, right: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setRight(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            right,
        )
    }

    /// <p>Sets the projection's top window coordinate to <i>top</i>. This triggers a projection matrix update.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraLens::setTop(float top)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setTop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the projection's top window coordinate to <i>top</i>. This triggers a projection matrix update.</p>
    /// <p><b>Note: </b>this has no effect if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#top-prop">top</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#top-prop">top</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top(&self, top: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_setTop(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            top,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the current top plane of the camera lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCameraLens::top() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current top plane of the camera lens.</p>
    /// <p><b>Note: </b>The return value may be undefined if the projection type is <a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::PerspectiveProjection</a>.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#setTop">setTop</a></b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>topChanged</b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn top(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_top(
            self as *const crate::QCameraLens,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCameraLens::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCameraLens::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCameraLens::viewAll(Qt3DCore::QNodeId cameraId)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn view_all(
        &self,
        camera_id: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_3d_core::QNodeId>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_viewAll(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_3d_core::QNodeId>>::cast_into(camera_id)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCameraLens::viewEntity(Qt3DCore::QNodeId entityId, Qt3DCore::QNodeId cameraId)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn view_entity(
        &self,
        entity_id: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_3d_core::QNodeId>>,
        camera_id: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_3d_core::QNodeId>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_viewEntity(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_3d_core::QNodeId>>::cast_into(entity_id)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_3d_core::QNodeId>>::cast_into(camera_id)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCameraLens::viewSphere(const QVector3D& center, float radius)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn view_sphere(
        &self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        radius: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_viewSphere(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(center)
                .as_raw_ptr(),
            radius,
        )
    }
}

pub mod q_camera {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QCamera```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QCamera::CameraTranslationOption```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CameraTranslationOption(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CameraTranslationOption {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CameraTranslationOption(value)
        }
    }

    impl From<CameraTranslationOption> for ::std::os::raw::c_int {
        fn from(value: CameraTranslationOption) -> Self {
            value.0
        }
    }

    impl CameraTranslationOption {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CameraTranslationOption {
        /// C++ enum variant: <span style='color: green;'>```TranslateViewCenter = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const TranslateViewCenter: crate::q_camera::CameraTranslationOption =
            crate::q_camera::CameraTranslationOption(0);
        /// C++ enum variant: <span style='color: green;'>```DontTranslateViewCenter = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const DontTranslateViewCenter: crate::q_camera::CameraTranslationOption =
            crate::q_camera::CameraTranslationOption(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html">QCamera</a> class defines a view point through which the scene will be rendered.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QCamera```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html">QCamera</a> class defines a view point through which the scene will be rendered.</p></div>
#[repr(C)]
pub struct QCamera {
    _unused: u8,
}
impl QCamera {
    /// <p>Sets the camera's projection type to <i>type</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setProjectionType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's projection type to <i>type</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionType-prop">projectionType</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionType-prop">projectionType</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_projection_type(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_camera_lens::ProjectionType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setProjectionType(Qt3DRender::QCameraLens::ProjectionType)\0",
                ),
            )
        }
    }

    /// <p>Sets the camera's near plane to <i>nearPlane</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setNearPlane` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setNearPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's near plane to <i>nearPlane</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#nearPlane-prop">nearPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#nearPlane-prop">nearPlane</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_near_plane(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setNearPlane(float)\0"),
            )
        }
    }

    /// <p>Sets the camera's far plane to <i>farPlane</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setFarPlane` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFarPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's far plane to <i>farPlane</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#farPlane-prop">farPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#farPlane-prop">farPlane</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_far_plane(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFarPlane(float)\0"),
            )
        }
    }

    /// <p>Sets the camera's field of view to <i>fieldOfView</i> in degrees.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setFieldOfView` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFieldOfView">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's field of view to <i>fieldOfView</i> in degrees.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#fieldOfView-prop">fieldOfView</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#fieldOfView-prop">fieldOfView</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_field_of_view(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFieldOfView(float)\0"),
            )
        }
    }

    /// <p>Sets the camera's aspect ratio to <i>aspectRatio</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setAspectRatio` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setAspectRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's aspect ratio to <i>aspectRatio</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#aspectRatio-prop">aspectRatio</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#aspectRatio-prop">aspectRatio</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_aspect_ratio(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setAspectRatio(float)\0"),
            )
        }
    }

    /// <p>Sets the left of the camera to <i>left</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setLeft` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setLeft">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the left of the camera to <i>left</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#left-prop">left</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#left-prop">left</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_left(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLeft(float)\0"),
            )
        }
    }

    /// <p>Sets the right of the camera to <i>right</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setRight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setRight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the right of the camera to <i>right</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#right-prop">right</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#right-prop">right</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_right(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setRight(float)\0"),
            )
        }
    }

    /// <p>Sets the bottom of the camera to <i>bottom</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setBottom` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setBottom">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the bottom of the camera to <i>bottom</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#bottom-prop">bottom</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#bottom-prop">bottom</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_bottom(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setBottom(float)\0"),
            )
        }
    }

    /// <p>Sets the top of the camera to <i>top</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setTop` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setTop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the top of the camera to <i>top</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#top-prop">top</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#top-prop">top</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_top(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setTop(float)\0"),
            )
        }
    }

    /// <p>Sets the camera's projection matrix to <i>projectionMatrix</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setProjectionMatrix` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's projection matrix to <i>projectionMatrix</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionMatrix-prop">projectionMatrix</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionMatrix-prop">projectionMatrix</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_projection_matrix(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_gui::QMatrix4X4,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setProjectionMatrix(QMatrix4x4 const &)\0",
                ),
            )
        }
    }

    /// <p>Sets the camera's exposure to <i>exposure</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setExposure` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setExposure">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's exposure to <i>exposure</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#exposure-prop">exposure</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#exposure-prop">exposure</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_exposure(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setExposure(float)\0"),
            )
        }
    }

    /// <p>Sets the camera's position in 3D space to <i>position</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setPosition` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's position in 3D space to <i>position</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#position-prop">position</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#position-prop">position</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_position(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setPosition(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Sets the camera's up vector to <i>upVector</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setUpVector` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setUpVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's up vector to <i>upVector</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#upVector-prop">upVector</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#upVector-prop">upVector</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_up_vector(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setUpVector(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Sets the camera's view center to <i>viewCenter</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCamera::setViewCenter` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setViewCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's view center to <i>viewCenter</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_view_center(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setViewCenter(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the type of the camera projection.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::projectionTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the type of the camera projection.</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.OrthographicProjection</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.PerspectiveProjection</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.FrustumProjection</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.CustomProjection</li>
    /// </ul>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QCameraLens::ProjectionType </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionType">setProjectionType</a></b></span>(QCameraLens::ProjectionType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionTypeChanged</b></span>(QCameraLens::ProjectionType <i>projectionType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::ProjectionType</a>.</p></div>
    #[inline(always)]
    pub fn projection_type_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_camera_lens::ProjectionType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2projectionTypeChanged(Qt3DRender::QCameraLens::ProjectionType)\0",
                ),
            )
        }
    }

    /// <p>Holds the current camera near plane.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::nearPlaneChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#nearPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current camera near plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setNearPlane">setNearPlane</a></b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlaneChanged</b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn near_plane_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2nearPlaneChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current camera far plane.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::farPlaneChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#farPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current camera far plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFarPlane">setFarPlane</a></b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlaneChanged</b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn far_plane_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2farPlaneChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current field of view in degrees.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::fieldOfViewChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#fieldOfView-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current field of view in degrees.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfView</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFieldOfView">setFieldOfView</a></b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfViewChanged</b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn field_of_view_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2fieldOfViewChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current aspect ratio.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::aspectRatioChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#aspectRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current aspect ratio.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setAspectRatio">setAspectRatio</a></b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatioChanged</b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn aspect_ratio_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2aspectRatioChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current left of the camera.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::leftChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current left of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setLeft">setLeft</a></b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn left_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2leftChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current right of the camera.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::rightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#right-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current right of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>right</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setRight">setRight</a></b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rightChanged</b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn right_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2rightChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current bottom of the camera.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::bottomChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current bottom of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setBottom">setBottom</a></b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn bottom_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2bottomChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current top of the camera.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::topChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current top of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setTop">setTop</a></b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>topChanged</b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn top_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2topChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the current projection matrix of the camera.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::projectionMatrixChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionMatrix-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current projection matrix of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QMatrix4x4 </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrix</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionMatrix">setProjectionMatrix</a></b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrixChanged</b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn projection_matrix_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QMatrix4X4,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2projectionMatrixChanged(QMatrix4x4 const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the current exposure of the camera.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::exposureChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#exposure-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current exposure of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>exposure</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setExposure">setExposure</a></b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>exposureChanged</b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn exposure_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2exposureChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the camera's position in coordinates relative to the parent entity.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::positionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#position-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's position in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>position</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setPosition">setPosition</a></b></span>(const QVector3D &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionChanged</b></span>(const QVector3D &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn position_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2positionChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the camera's up vector in coordinates relative to the parent entity.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::upVectorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#upVector-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's up vector in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>upVector</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setUpVector">setUpVector</a></b></span>(const QVector3D &amp;<i>upVector</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>upVectorChanged</b></span>(const QVector3D &amp;<i>upVector</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn up_vector_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2upVectorChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the camera's view center in coordinates relative to the parent entity.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::viewCenterChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's view center in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>viewCenter</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setViewCenter">setViewCenter</a></b></span>(const QVector3D &amp;<i>viewCenter</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>viewCenterChanged</b></span>(const QVector3D &amp;<i>viewCenter</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn view_center_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2viewCenterChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the camera's view vector in coordinates relative to the parent entity.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::viewVectorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewVector-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's view vector in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>viewVector</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>viewVectorChanged</b></span>(const QVector3D &amp;<i>viewVector</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn view_vector_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2viewVectorChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the camera's view matrix in coordinates relative to the parent entity.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCamera::viewMatrixChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera-obsolete.html#viewMatrix-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's view matrix in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QMatrix4x4 </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewMatrix-prop">viewMatrix</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewMatrix-prop">viewMatrixChanged</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn view_matrix_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2viewMatrixChanged()\0"),
            )
        }
    }

    /// <p>Holds the current aspect ratio.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::aspectRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#aspectRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current aspect ratio.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setAspectRatio">setAspectRatio</a></b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>aspectRatioChanged</b></span>(float <i>aspectRatio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn aspect_ratio(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_aspectRatio(
            self as *const crate::QCamera,
        )
    }

    /// <p>Holds the current bottom of the camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::bottom() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current bottom of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setBottom">setBottom</a></b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(float <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn bottom(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_bottom(self as *const crate::QCamera)
    }

    /// <p>Holds the current exposure of the camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::exposure() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#exposure-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current exposure of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>exposure</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setExposure">setExposure</a></b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>exposureChanged</b></span>(float <i>exposure</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn exposure(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_exposure(
            self as *const crate::QCamera,
        )
    }

    /// <p>Holds the current camera far plane.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::farPlane() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#farPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current camera far plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFarPlane">setFarPlane</a></b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farPlaneChanged</b></span>(float <i>farPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn far_plane(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_farPlane(
            self as *const crate::QCamera,
        )
    }

    /// <p>Holds the current field of view in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::fieldOfView() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#fieldOfView-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current field of view in degrees.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfView</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFieldOfView">setFieldOfView</a></b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fieldOfViewChanged</b></span>(float <i>fieldOfView</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn field_of_view(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_fieldOfView(
            self as *const crate::QCamera,
        )
    }

    /// <p>Holds the current left of the camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::left() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current left of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setLeft">setLeft</a></b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(float <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn left(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_left(self as *const crate::QCamera)
    }

    /// <p>Returns the current lens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens* Qt3DRender::QCamera::lens() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#lens">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current lens.</p></div>
    #[inline(always)]
    pub unsafe fn lens(&self) -> ::qt_core::QPtr<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_lens(
                self as *const crate::QCamera,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QCamera::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_metaObject(
                self as *const crate::QCamera,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the current camera near plane.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::nearPlane() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#nearPlane-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current camera near plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlane</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setNearPlane">setNearPlane</a></b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearPlaneChanged</b></span>(float <i>nearPlane</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn near_plane(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_nearPlane(
            self as *const crate::QCamera,
        )
    }

    /// <p>Default constructs an instance of QCamera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCamera::QCamera(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#QCamera">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QCamera.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_QCamera(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html">QCamera</a> class defines a view point through which the scene will be rendered.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCamera::QCamera()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html">QCamera</a> class defines a view point through which the scene will be rendered.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QCamera> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_QCamera1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Adjusts the pan angle of the camera by <i>angle</i> in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::pan(float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#pan">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the pan angle of the camera by <i>angle</i> in degrees.</p></div>
    #[inline(always)]
    pub unsafe fn pan_1a(&self, angle: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_pan(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
        )
    }

    /// <p>Adjusts the pan angle of the camera by <i>angle</i> in degrees on a chosen <i>axis</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::pan(float angle, const QVector3D& axis)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#pan-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the pan angle of the camera by <i>angle</i> in degrees on a chosen <i>axis</i>.</p></div>
    #[inline(always)]
    pub unsafe fn pan_2a(
        &self,
        angle: ::std::os::raw::c_float,
        axis: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_pan1(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(axis)
                .as_raw_ptr(),
        )
    }

    /// <p>Adjusts the camera pan about view center by <i>angle</i> in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::panAboutViewCenter(float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#panAboutViewCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the camera pan about view center by <i>angle</i> in degrees.</p></div>
    #[inline(always)]
    pub unsafe fn pan_about_view_center_1a(&self, angle: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_panAboutViewCenter(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
        )
    }

    /// <p>Adjusts the camera pan about view center by <i>angle</i> in degrees on <i>axis</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::panAboutViewCenter(float angle, const QVector3D& axis)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#panAboutViewCenter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the camera pan about view center by <i>angle</i> in degrees on <i>axis</i>.</p></div>
    #[inline(always)]
    pub unsafe fn pan_about_view_center_2a(
        &self,
        angle: ::std::os::raw::c_float,
        axis: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_panAboutViewCenter1(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(axis)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the calculated pan rotation in relation to the <i>angle</i> in degrees taken in to adjust the camera's pan or left/right rotation on the Y axis.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion Qt3DRender::QCamera::panRotation(float angle) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#panRotation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the calculated pan rotation in relation to the <i>angle</i> in degrees taken in to adjust the camera's pan or left/right rotation on the Y axis.</p></div>
    #[inline(always)]
    pub unsafe fn pan_rotation(
        &self,
        angle: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<::qt_gui::QQuaternion> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_panRotation(
                self as *const crate::QCamera,
                angle,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the camera's position in coordinates relative to the parent entity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QCamera::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#position-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's position in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>position</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setPosition">setPosition</a></b></span>(const QVector3D &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionChanged</b></span>(const QVector3D &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_position(
                self as *const crate::QCamera,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the current projection matrix of the camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 Qt3DRender::QCamera::projectionMatrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionMatrix-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current projection matrix of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QMatrix4x4 </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrix</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionMatrix">setProjectionMatrix</a></b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionMatrixChanged</b></span>(const QMatrix4x4 &amp;<i>projectionMatrix</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn projection_matrix(&self) -> ::cpp_core::CppBox<::qt_gui::QMatrix4X4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_projectionMatrix(
                self as *const crate::QCamera,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the type of the camera projection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens::ProjectionType Qt3DRender::QCamera::projectionType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the type of the camera projection.</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.OrthographicProjection</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.PerspectiveProjection</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.FrustumProjection</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-cameralens.html">CameraLens</a>.CustomProjection</li>
    /// </ul>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QCameraLens::ProjectionType </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionType">setProjectionType</a></b></span>(QCameraLens::ProjectionType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>projectionTypeChanged</b></span>(QCameraLens::ProjectionType <i>projectionType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcameralens.html#ProjectionType-enum">Qt3DRender::QCameraLens::ProjectionType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn projection_type(&self) -> crate::q_camera_lens::ProjectionType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_projectionType(
            self as *const crate::QCamera,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QCamera::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_qt_metacall(
            self as *const crate::QCamera as *mut crate::QCamera,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QCamera::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_qt_metacast(
            self as *const crate::QCamera as *mut crate::QCamera,
            arg1,
        )
    }

    /// <p>Holds the current right of the camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::right() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#right-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current right of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>right</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setRight">setRight</a></b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rightChanged</b></span>(float <i>right</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn right(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_right(self as *const crate::QCamera)
    }

    /// <p>Adjusts the camera roll by <i>angle</i> in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::roll(float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#roll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the camera roll by <i>angle</i> in degrees.</p></div>
    #[inline(always)]
    pub unsafe fn roll(&self, angle: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_roll(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
        )
    }

    /// <p>Adjusts the camera roll about view center by <i>angle</i> in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::rollAboutViewCenter(float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#rollAboutViewCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the camera roll about view center by <i>angle</i> in degrees.</p></div>
    #[inline(always)]
    pub unsafe fn roll_about_view_center(&self, angle: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_rollAboutViewCenter(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
        )
    }

    /// <p>Returns the calculated roll rotation in relation to the <i>angle</i> in degrees taken in to adjust the camera's roll or lean left/right rotation on the Z axis.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion Qt3DRender::QCamera::rollRotation(float angle) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#rollRotation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the calculated roll rotation in relation to the <i>angle</i> in degrees taken in to adjust the camera's roll or lean left/right rotation on the Z axis.</p></div>
    #[inline(always)]
    pub unsafe fn roll_rotation(
        &self,
        angle: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<::qt_gui::QQuaternion> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_rollRotation(
                self as *const crate::QCamera,
                angle,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Rotates the camera with the use of a Quaternion in <i>q</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::rotate(const QQuaternion& q)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#rotate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the camera with the use of a Quaternion in <i>q</i>.</p></div>
    #[inline(always)]
    pub unsafe fn rotate(
        &self,
        q: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QQuaternion>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_rotate(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QQuaternion>>::cast_into(q)
                .as_raw_ptr(),
        )
    }

    /// <p>Rotates the camera about the view center with the use of a Quaternion in <i>q</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::rotateAboutViewCenter(const QQuaternion& q)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#rotateAboutViewCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates the camera about the view center with the use of a Quaternion in <i>q</i>.</p></div>
    #[inline(always)]
    pub unsafe fn rotate_about_view_center(
        &self,
        q: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QQuaternion>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_rotateAboutViewCenter(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QQuaternion>>::cast_into(q)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the calculated rotation in relation to the <i>angle</i> in degrees and chosen <i>axis</i> taken in.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion Qt3DRender::QCamera::rotation(float angle, const QVector3D& axis) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#rotation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the calculated rotation in relation to the <i>angle</i> in degrees and chosen <i>axis</i> taken in.</p></div>
    #[inline(always)]
    pub unsafe fn rotation(
        &self,
        angle: ::std::os::raw::c_float,
        axis: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) -> ::cpp_core::CppBox<::qt_gui::QQuaternion> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_rotation(
                self as *const crate::QCamera,
                angle,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(axis)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets the camera's aspect ratio to <i>aspectRatio</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setAspectRatio(float aspectRatio)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setAspectRatio">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's aspect ratio to <i>aspectRatio</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#aspectRatio-prop">aspectRatio</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#aspectRatio-prop">aspectRatio</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_aspect_ratio(&self, aspect_ratio: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setAspectRatio(
            self as *const crate::QCamera as *mut crate::QCamera,
            aspect_ratio,
        )
    }

    /// <p>Sets the bottom of the camera to <i>bottom</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setBottom(float bottom)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setBottom">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the bottom of the camera to <i>bottom</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#bottom-prop">bottom</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#bottom-prop">bottom</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_bottom(&self, bottom: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setBottom(
            self as *const crate::QCamera as *mut crate::QCamera,
            bottom,
        )
    }

    /// <p>Sets the camera's exposure to <i>exposure</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setExposure(float exposure)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setExposure">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's exposure to <i>exposure</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#exposure-prop">exposure</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#exposure-prop">exposure</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_exposure(&self, exposure: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setExposure(
            self as *const crate::QCamera as *mut crate::QCamera,
            exposure,
        )
    }

    /// <p>Sets the camera's far plane to <i>farPlane</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setFarPlane(float farPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFarPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's far plane to <i>farPlane</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#farPlane-prop">farPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#farPlane-prop">farPlane</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_far_plane(&self, far_plane: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setFarPlane(
            self as *const crate::QCamera as *mut crate::QCamera,
            far_plane,
        )
    }

    /// <p>Sets the camera's field of view to <i>fieldOfView</i> in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setFieldOfView(float fieldOfView)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setFieldOfView">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's field of view to <i>fieldOfView</i> in degrees.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#fieldOfView-prop">fieldOfView</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#fieldOfView-prop">fieldOfView</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_field_of_view(&self, field_of_view: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setFieldOfView(
            self as *const crate::QCamera as *mut crate::QCamera,
            field_of_view,
        )
    }

    /// <p>Sets the left of the camera to <i>left</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setLeft(float left)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setLeft">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the left of the camera to <i>left</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#left-prop">left</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#left-prop">left</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_left(&self, left: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setLeft(
            self as *const crate::QCamera as *mut crate::QCamera,
            left,
        )
    }

    /// <p>Sets the camera's near plane to <i>nearPlane</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setNearPlane(float nearPlane)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setNearPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's near plane to <i>nearPlane</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#nearPlane-prop">nearPlane</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#nearPlane-prop">nearPlane</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_near_plane(&self, near_plane: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setNearPlane(
            self as *const crate::QCamera as *mut crate::QCamera,
            near_plane,
        )
    }

    /// <p>Sets the camera's position in 3D space to <i>position</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setPosition(const QVector3D& position)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setPosition">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's position in 3D space to <i>position</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#position-prop">position</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#position-prop">position</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_position(
        &self,
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setPosition(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(position)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the camera's projection matrix to <i>projectionMatrix</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setProjectionMatrix(const QMatrix4x4& projectionMatrix)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionMatrix">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's projection matrix to <i>projectionMatrix</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionMatrix-prop">projectionMatrix</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionMatrix-prop">projectionMatrix</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_projection_matrix(
        &self,
        projection_matrix: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QMatrix4X4>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setProjectionMatrix(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QMatrix4X4>>::cast_into(
                projection_matrix,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Sets the camera's projection type to <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setProjectionType(Qt3DRender::QCameraLens::ProjectionType type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setProjectionType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's projection type to <i>type</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionType-prop">projectionType</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#projectionType-prop">projectionType</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_projection_type(&self, type_: crate::q_camera_lens::ProjectionType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setProjectionType(
            self as *const crate::QCamera as *mut crate::QCamera,
            type_,
        )
    }

    /// <p>Sets the right of the camera to <i>right</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setRight(float right)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setRight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the right of the camera to <i>right</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#right-prop">right</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#right-prop">right</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_right(&self, right: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setRight(
            self as *const crate::QCamera as *mut crate::QCamera,
            right,
        )
    }

    /// <p>Sets the top of the camera to <i>top</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setTop(float top)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setTop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the top of the camera to <i>top</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#top-prop">top</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#top-prop">top</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_top(&self, top: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setTop(
            self as *const crate::QCamera as *mut crate::QCamera,
            top,
        )
    }

    /// <p>Sets the camera's up vector to <i>upVector</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setUpVector(const QVector3D& upVector)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setUpVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's up vector to <i>upVector</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#upVector-prop">upVector</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#upVector-prop">upVector</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_up_vector(
        &self,
        up_vector: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setUpVector(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(up_vector)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the camera's view center to <i>viewCenter</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCamera::setViewCenter(const QVector3D& viewCenter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setViewCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the camera's view center to <i>viewCenter</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_view_center(
        &self,
        view_center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_setViewCenter(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(view_center)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Adjusts the tilt angle of the camera by <i>angle</i> in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::tilt(float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#tilt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the tilt angle of the camera by <i>angle</i> in degrees.</p></div>
    #[inline(always)]
    pub unsafe fn tilt(&self, angle: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_tilt(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
        )
    }

    /// <p>Adjusts the camera tilt about view center by <i>angle</i> in degrees.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::tiltAboutViewCenter(float angle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#tiltAboutViewCenter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adjusts the camera tilt about view center by <i>angle</i> in degrees.</p></div>
    #[inline(always)]
    pub unsafe fn tilt_about_view_center(&self, angle: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_tiltAboutViewCenter(
            self as *const crate::QCamera as *mut crate::QCamera,
            angle,
        )
    }

    /// <p>Returns the calculated tilt rotation in relation to the <i>angle</i> in degrees taken in to adjust the camera's tilt or up/down rotation on the X axis.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QQuaternion Qt3DRender::QCamera::tiltRotation(float angle) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#tiltRotation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the calculated tilt rotation in relation to the <i>angle</i> in degrees taken in to adjust the camera's tilt or up/down rotation on the X axis.</p></div>
    #[inline(always)]
    pub unsafe fn tilt_rotation(
        &self,
        angle: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<::qt_gui::QQuaternion> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_tiltRotation(
                self as *const crate::QCamera,
                angle,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the current top of the camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QCamera::top() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#top-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current top of the camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>top</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setTop">setTop</a></b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>topChanged</b></span>(float <i>top</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn top(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_top(self as *const crate::QCamera)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCamera::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCamera::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the camera's position via transform.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QTransform* Qt3DRender::QCamera::transform() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#transform">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the camera's position via transform.</p></div>
    #[inline(always)]
    pub unsafe fn transform(&self) -> ::qt_core::QPtr<::qt_3d_core::QTransform> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_transform(
                self as *const crate::QCamera,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Translates the camera's position and its view vector by <i>vLocal</i> in local coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::translate(const QVector3D& vLocal, Qt3DRender::QCamera::CameraTranslationOption option = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates the camera's position and its view vector by <i>vLocal</i> in local coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p></div>
    #[inline(always)]
    pub unsafe fn translate_2a(
        &self,
        v_local: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        option: crate::q_camera::CameraTranslationOption,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_translate(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(v_local)
                .as_raw_ptr(),
            option,
        )
    }

    /// <p>Translates the camera's position and its view vector by <i>vLocal</i> in local coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::translate(const QVector3D& vLocal)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#translate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates the camera's position and its view vector by <i>vLocal</i> in local coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p></div>
    #[inline(always)]
    pub unsafe fn translate_1a(
        &self,
        v_local: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_translate1(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(v_local)
                .as_raw_ptr(),
        )
    }

    /// <p>Translates the camera's position and its view vector by <i>vWorld</i> in world coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::translateWorld(const QVector3D& vWorld, Qt3DRender::QCamera::CameraTranslationOption option = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#translateWorld">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates the camera's position and its view vector by <i>vWorld</i> in world coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p></div>
    #[inline(always)]
    pub unsafe fn translate_world_2a(
        &self,
        v_world: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        option: crate::q_camera::CameraTranslationOption,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_translateWorld(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(v_world)
                .as_raw_ptr(),
            option,
        )
    }

    /// <p>Translates the camera's position and its view vector by <i>vWorld</i> in world coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::translateWorld(const QVector3D& vWorld)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#translateWorld">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Translates the camera's position and its view vector by <i>vWorld</i> in world coordinates. The <i>option</i> allows for toggling whether the view center should be translated.</p></div>
    #[inline(always)]
    pub unsafe fn translate_world_1a(
        &self,
        v_world: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_translateWorld1(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(v_world)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the camera's up vector in coordinates relative to the parent entity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QCamera::upVector() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#upVector-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's up vector in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>upVector</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setUpVector">setUpVector</a></b></span>(const QVector3D &amp;<i>upVector</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>upVectorChanged</b></span>(const QVector3D &amp;<i>upVector</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn up_vector(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_upVector(
                self as *const crate::QCamera,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Rotates and moves the camera so that it's <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a> is the center of the scene's bounding volume and the entire scene fits in the view port.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::viewAll()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates and moves the camera so that it's <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a> is the center of the scene's bounding volume and the entire scene fits in the view port.</p>
    /// <p><b>Note: </b>Only works if the lens is in perspective projection mode.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qml-qt3d-render-camera.html#projectionType-prop">Qt3D.Render::Camera::projectionType</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn view_all(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_viewAll(
            self as *const crate::QCamera as *mut crate::QCamera,
        )
    }

    /// <p>Holds the camera's view center in coordinates relative to the parent entity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QCamera::viewCenter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's view center in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>viewCenter</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#setViewCenter">setViewCenter</a></b></span>(const QVector3D &amp;<i>viewCenter</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>viewCenterChanged</b></span>(const QVector3D &amp;<i>viewCenter</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn view_center(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_viewCenter(
                self as *const crate::QCamera,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Rotates and moves the camera so that it's <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a> is the center of the <i>entity</i>'s bounding volume and the entire entity fits in the view port.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::viewEntity(Qt3DCore::QEntity* entity)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewEntity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates and moves the camera so that it's <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a> is the center of the <i>entity</i>'s bounding volume and the entire entity fits in the view port.</p>
    /// <p><b>Note: </b>Only works if the lens is in perspective projection mode.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qml-qt3d-render-camera.html#projectionType-prop">Camera.projectionType</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn view_entity(
        &self,
        entity: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QEntity>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_viewEntity(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QEntity>>::cast_into(entity)
                .as_raw_ptr() as *mut ::qt_3d_core::QEntity,
        )
    }

    /// <p>Holds the camera's view matrix in coordinates relative to the parent entity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QMatrix4x4 Qt3DRender::QCamera::viewMatrix() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera-obsolete.html#viewMatrix-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's view matrix in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QMatrix4x4 </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewMatrix-prop">viewMatrix</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewMatrix-prop">viewMatrixChanged</a></b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn view_matrix(&self) -> ::cpp_core::CppBox<::qt_gui::QMatrix4X4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_viewMatrix(
                self as *const crate::QCamera,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Rotates and moves the camera so that it's <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a> is <i>center</i> and a sphere of <i>radius</i> fits in the view port.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QCamera::viewSphere(const QVector3D& center, float radius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewSphere">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Rotates and moves the camera so that it's <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewCenter-prop">viewCenter</a> is <i>center</i> and a sphere of <i>radius</i> fits in the view port.</p>
    /// <p><b>Note: </b>Only works if the lens is in perspective projection mode.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qml-qt3d-render-camera.html#projectionType-prop">Qt3D.Render::Camera::projectionType</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn view_sphere(
        &self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        radius: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_viewSphere(
            self as *const crate::QCamera as *mut crate::QCamera,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(center)
                .as_raw_ptr(),
            radius,
        )
    }

    /// <p>Holds the camera's view vector in coordinates relative to the parent entity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QCamera::viewVector() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcamera.html#viewVector-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the camera's view vector in coordinates relative to the parent entity.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>viewVector</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>viewVectorChanged</b></span>(const QVector3D &amp;<i>viewVector</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn view_vector(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_viewVector(
                self as *const crate::QCamera,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Class to allow for selection of camera to be used</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QCameraSelector```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Class to allow for selection of camera to be used</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">Qt3DRender::QCameraSelector</a> can be used to select the camera, which is used by the FrameGraph when drawing the entities.</p></div>
#[repr(C)]
pub struct QCameraSelector {
    _unused: u8,
}
impl QCameraSelector {
    /// <p>Holds the currently selected camera.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCameraSelector::setCamera` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html#camera-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently selected camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>camera</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCamera</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cameraChanged</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_camera(&self) -> ::qt_core::Receiver<(*mut ::qt_3d_core::QEntity,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setCamera(Qt3DCore::QEntity *)\0",
                ),
            )
        }
    }

    /// <p>Holds the currently selected camera.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCameraSelector::cameraChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html#camera-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently selected camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>camera</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCamera</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cameraChanged</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn camera_changed(&self) -> ::qt_core::Signal<(*mut ::qt_3d_core::QEntity,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2cameraChanged(Qt3DCore::QEntity *)\0",
                ),
            )
        }
    }

    /// <p>Holds the currently selected camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QEntity* Qt3DRender::QCameraSelector::camera() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html#camera-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently selected camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>camera</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCamera</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cameraChanged</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn camera(&self) -> ::qt_core::QPtr<::qt_3d_core::QEntity> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_camera(
                self as *const crate::QCameraSelector,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QCameraSelector::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_metaObject(
                self as *const crate::QCameraSelector,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>The constructor creates an instance with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCameraSelector::QCameraSelector(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html#QCameraSelector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates an instance with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QCameraSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_QCameraSelector(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Class to allow for selection of camera to be used</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCameraSelector::QCameraSelector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Class to allow for selection of camera to be used</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">Qt3DRender::QCameraSelector</a> can be used to select the camera, which is used by the FrameGraph when drawing the entities.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QCameraSelector> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_QCameraSelector1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QCameraSelector::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_qt_metacall(
            self as *const crate::QCameraSelector as *mut crate::QCameraSelector,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QCameraSelector::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_qt_metacast(
            self as *const crate::QCameraSelector as *mut crate::QCameraSelector,
            arg1,
        )
    }

    /// <p>Holds the currently selected camera.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCameraSelector::setCamera(Qt3DCore::QEntity* camera)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html#camera-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently selected camera.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>camera</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCamera</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cameraChanged</b></span>(Qt3DCore::QEntity *<i>camera</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_camera(
        &self,
        camera: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QEntity>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_setCamera(
            self as *const crate::QCameraSelector as *mut crate::QCameraSelector,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QEntity>>::cast_into(camera)
                .as_raw_ptr() as *mut ::qt_3d_core::QEntity,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCameraSelector::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCameraSelector::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_render_target_output {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct AttachmentPoint(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for AttachmentPoint {
        fn from(value: ::std::os::raw::c_int) -> Self {
            AttachmentPoint(value)
        }
    }

    impl From<AttachmentPoint> for ::std::os::raw::c_int {
        fn from(value: AttachmentPoint) -> Self {
            value.0
        }
    }

    impl AttachmentPoint {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl AttachmentPoint {
        /// C++ enum variant: <span style='color: green;'>```Color0 = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Color0: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(0);
        /// C++ enum variant: <span style='color: green;'>```Color1 = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Color1: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(1);
        /// C++ enum variant: <span style='color: green;'>```Color2 = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Color2: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(2);
        /// C++ enum variant: <span style='color: green;'>```Color3 = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const Color3: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(3);
        /// C++ enum variant: <span style='color: green;'>```Color4 = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Color4: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(4);
        /// C++ enum variant: <span style='color: green;'>```Color5 = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const Color5: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(5);
        /// C++ enum variant: <span style='color: green;'>```Color6 = 6```</span>
        #[allow(non_upper_case_globals)]
        pub const Color6: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(6);
        /// C++ enum variant: <span style='color: green;'>```Color7 = 7```</span>
        #[allow(non_upper_case_globals)]
        pub const Color7: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(7);
        /// C++ enum variant: <span style='color: green;'>```Color8 = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const Color8: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(8);
        /// C++ enum variant: <span style='color: green;'>```Color9 = 9```</span>
        #[allow(non_upper_case_globals)]
        pub const Color9: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(9);
        /// C++ enum variant: <span style='color: green;'>```Color10 = 10```</span>
        #[allow(non_upper_case_globals)]
        pub const Color10: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(10);
        /// C++ enum variant: <span style='color: green;'>```Color11 = 11```</span>
        #[allow(non_upper_case_globals)]
        pub const Color11: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(11);
        /// C++ enum variant: <span style='color: green;'>```Color12 = 12```</span>
        #[allow(non_upper_case_globals)]
        pub const Color12: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(12);
        /// C++ enum variant: <span style='color: green;'>```Color13 = 13```</span>
        #[allow(non_upper_case_globals)]
        pub const Color13: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(13);
        /// C++ enum variant: <span style='color: green;'>```Color14 = 14```</span>
        #[allow(non_upper_case_globals)]
        pub const Color14: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(14);
        /// C++ enum variant: <span style='color: green;'>```Color15 = 15```</span>
        #[allow(non_upper_case_globals)]
        pub const Color15: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(15);
        /// C++ enum variant: <span style='color: green;'>```Depth = 16```</span>
        #[allow(non_upper_case_globals)]
        pub const Depth: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(16);
        /// C++ enum variant: <span style='color: green;'>```Stencil = 17```</span>
        #[allow(non_upper_case_globals)]
        pub const Stencil: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(17);
        /// C++ enum variant: <span style='color: green;'>```DepthStencil = 18```</span>
        #[allow(non_upper_case_globals)]
        pub const DepthStencil: crate::q_render_target_output::AttachmentPoint =
            crate::q_render_target_output::AttachmentPoint(18);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> class allows the specification of an attachment of a render target (whether it is a color texture, a depth texture, etc... ).</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> class allows the specification of an attachment of a render target (whether it is a color texture, a depth texture, etc... ).</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> specifies the attachment point and parameters for texture that is attached to render target. In addition to the attachment point, texture miplevel, layer and cubemap face can be specified. The texture attached to the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> must be compatible with the given parameters.</p></div>
#[repr(C)]
pub struct QRenderTargetOutput {
    _unused: u8,
}
impl QRenderTargetOutput {
    /// <p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderTargetOutput::setAttachmentPoint` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#attachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPoint</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttachmentPoint</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPointChanged</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_attachment_point(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_render_target_output::AttachmentPoint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setAttachmentPoint(Qt3DRender::QRenderTargetOutput::AttachmentPoint)\0",
                ),
            )
        }
    }

    /// <p>Holds the texture attached to the attachment point.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderTargetOutput::setTexture` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#texture-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the texture attached to the attachment point.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>texture</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTexture</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureChanged</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_texture(&self) -> ::qt_core::Receiver<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setTexture(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderTargetOutput::setMipLevel` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_mip_level(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMipLevel(int)\0"),
            )
        }
    }

    /// <p>Holds the layer of the attached texture the rendering is directed to.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderTargetOutput::setLayer` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the layer of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_layer(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLayer(int)\0"),
            )
        }
    }

    /// <p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderTargetOutput::setFace` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#face-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture::CubeMapFace </td><td class="memItemRight bottomAlign"><span class="name"><b>face</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFace</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceChanged</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_face(&self) -> ::qt_core::Receiver<(crate::q_abstract_texture::CubeMapFace,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFace(Qt3DRender::QAbstractTexture::CubeMapFace)\0",
                ),
            )
        }
    }

    /// <p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderTargetOutput::attachmentPointChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#attachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPoint</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttachmentPoint</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPointChanged</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn attachment_point_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_render_target_output::AttachmentPoint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2attachmentPointChanged(Qt3DRender::QRenderTargetOutput::AttachmentPoint)\0",
                ),
            )
        }
    }

    /// <p>Holds the texture attached to the attachment point.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderTargetOutput::textureChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#texture-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the texture attached to the attachment point.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>texture</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTexture</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureChanged</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn texture_changed(&self) -> ::qt_core::Signal<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2textureChanged(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderTargetOutput::mipLevelChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mip_level_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2mipLevelChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the layer of the attached texture the rendering is directed to.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderTargetOutput::layerChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the layer of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn layer_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2layerChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderTargetOutput::faceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#face-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture::CubeMapFace </td><td class="memItemRight bottomAlign"><span class="name"><b>face</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFace</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceChanged</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn face_changed(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::CubeMapFace,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2faceChanged(Qt3DRender::QAbstractTexture::CubeMapFace)\0",
                ),
            )
        }
    }

    /// <p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint Qt3DRender::QRenderTargetOutput::attachmentPoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#attachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPoint</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttachmentPoint</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPointChanged</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn attachment_point(&self) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_attachmentPoint(
            self as *const crate::QRenderTargetOutput,
        )
    }

    /// <p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::CubeMapFace Qt3DRender::QRenderTargetOutput::face() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#face-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture::CubeMapFace </td><td class="memItemRight bottomAlign"><span class="name"><b>face</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFace</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceChanged</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn face(&self) -> crate::q_abstract_texture::CubeMapFace {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_face(
            self as *const crate::QRenderTargetOutput,
        )
    }

    /// <p>Holds the layer of the attached texture the rendering is directed to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QRenderTargetOutput::layer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the layer of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn layer(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_layer(
            self as *const crate::QRenderTargetOutput,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderTargetOutput::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_metaObject(
                self as *const crate::QRenderTargetOutput,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QRenderTargetOutput::mipLevel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn mip_level(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_mipLevel(
            self as *const crate::QRenderTargetOutput,
        )
    }

    /// <p>Default constructs an instance of QRenderTargetOutput.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderTargetOutput::QRenderTargetOutput(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#QRenderTargetOutput">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRenderTargetOutput.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_QRenderTargetOutput(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> class allows the specification of an attachment of a render target (whether it is a color texture, a depth texture, etc... ).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderTargetOutput::QRenderTargetOutput()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> class allows the specification of an attachment of a render target (whether it is a color texture, a depth texture, etc... ).</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> specifies the attachment point and parameters for texture that is attached to render target. In addition to the attachment point, texture miplevel, layer and cubemap face can be specified. The texture attached to the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a> must be compatible with the given parameters.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_QRenderTargetOutput1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderTargetOutput::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_qt_metacall(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderTargetOutput::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_qt_metacast(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
            arg1,
        )
    }

    /// <p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderTargetOutput::setAttachmentPoint(Qt3DRender::QRenderTargetOutput::AttachmentPoint attachmentPoint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#attachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attachment point of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">QRenderTargetOutput</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPoint</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAttachmentPoint</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>attachmentPointChanged</b></span>(AttachmentPoint <i>attachmentPoint</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_attachment_point(
        &self,
        attachment_point: crate::q_render_target_output::AttachmentPoint,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_setAttachmentPoint(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
            attachment_point,
        )
    }

    /// <p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderTargetOutput::setFace(Qt3DRender::QAbstractTexture::CubeMapFace face)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#face-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face of the attached cubemap texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture::CubeMapFace </td><td class="memItemRight bottomAlign"><span class="name"><b>face</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFace</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceChanged</b></span>(QAbstractTexture::CubeMapFace <i>face</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_face(&self, face: crate::q_abstract_texture::CubeMapFace) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_setFace(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
            face,
        )
    }

    /// <p>Holds the layer of the attached texture the rendering is directed to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderTargetOutput::setLayer(int layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the layer of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_layer(&self, layer: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_setLayer(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
            layer,
        )
    }

    /// <p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderTargetOutput::setMipLevel(int level)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the miplevel of the attached texture the rendering is directed to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>level</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_mip_level(&self, level: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_setMipLevel(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
            level,
        )
    }

    /// <p>Holds the texture attached to the attachment point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderTargetOutput::setTexture(Qt3DRender::QAbstractTexture* texture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#texture-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the texture attached to the attachment point.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>texture</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTexture</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureChanged</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_texture(
        &self,
        texture: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_setTexture(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(texture)
                .as_raw_ptr() as *mut crate::QAbstractTexture,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the texture attached to the attachment point.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* Qt3DRender::QRenderTargetOutput::texture() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#texture-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the texture attached to the attachment point.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>texture</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTexture</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureChanged</b></span>(QAbstractTexture *<i>texture</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn texture(&self) -> ::qt_core::QPtr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_texture(
                self as *const crate::QRenderTargetOutput,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderTargetOutput::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderTargetOutput::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_clear_buffers {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QClearBuffers```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QClearBuffers::BufferType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct BufferType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for BufferType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            BufferType(value)
        }
    }

    impl From<BufferType> for ::std::os::raw::c_int {
        fn from(value: BufferType) -> Self {
            value.0
        }
    }

    impl BufferType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl BufferType {
        /// C++ enum variant: <span style='color: green;'>```None = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const None: crate::q_clear_buffers::BufferType = crate::q_clear_buffers::BufferType(0);
        /// C++ enum variant: <span style='color: green;'>```ColorBuffer = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const ColorBuffer: crate::q_clear_buffers::BufferType =
            crate::q_clear_buffers::BufferType(1);
        /// C++ enum variant: <span style='color: green;'>```DepthBuffer = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const DepthBuffer: crate::q_clear_buffers::BufferType =
            crate::q_clear_buffers::BufferType(2);
        /// C++ enum variant: <span style='color: green;'>```StencilBuffer = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const StencilBuffer: crate::q_clear_buffers::BufferType =
            crate::q_clear_buffers::BufferType(4);
        /// C++ enum variant: <span style='color: green;'>```DepthStencilBuffer = 6```</span>
        #[allow(non_upper_case_globals)]
        pub const DepthStencilBuffer: crate::q_clear_buffers::BufferType =
            crate::q_clear_buffers::BufferType(6);
        /// C++ enum variant: <span style='color: green;'>```ColorDepthBuffer = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const ColorDepthBuffer: crate::q_clear_buffers::BufferType =
            crate::q_clear_buffers::BufferType(3);
        /// C++ enum variant: <span style='color: green;'>```ColorDepthStencilBuffer = 7```</span>
        #[allow(non_upper_case_globals)]
        pub const ColorDepthStencilBuffer: crate::q_clear_buffers::BufferType =
            crate::q_clear_buffers::BufferType(7);
        /// C++ enum variant: <span style='color: green;'>```AllBuffers = -1```</span>
        #[allow(non_upper_case_globals)]
        pub const AllBuffers: crate::q_clear_buffers::BufferType =
            crate::q_clear_buffers::BufferType(-1);
    }
}
/// <p>Class to clear buffers</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QClearBuffers```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Class to clear buffers</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">Qt3DRender::QClearBuffers</a> FrameGraph node enables clearing of the specific render target buffers with specific values.</p></div>
#[repr(C)]
pub struct QClearBuffers {
    _unused: u8,
}
impl QClearBuffers {
    /// <p>Specifies the buffer type to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClearBuffers::setBuffers` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#buffers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the buffer type to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>buffers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffers</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>buffersChanged</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_buffers(&self) -> ::qt_core::Receiver<(crate::q_clear_buffers::BufferType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setBuffers(Qt3DRender::QClearBuffers::BufferType)\0",
                ),
            )
        }
    }

    /// <p>Specifies the clear color to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClearBuffers::setClearColor` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearColor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear color to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_clear_color(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QColor,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setClearColor(QColor const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the clear depth value to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClearBuffers::setClearDepthValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearDepthValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear depth value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearDepthValue</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValueChanged</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_clear_depth_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setClearDepthValue(float)\0"),
            )
        }
    }

    /// <p>Specifies the stencil value to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClearBuffers::setClearStencilValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearStencilValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the stencil value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearStencilValue</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValueChanged</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_clear_stencil_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setClearStencilValue(int)\0"),
            )
        }
    }

    /// <p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClearBuffers::setColorBuffer` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#colorBuffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTargetOutput *</td><td class="memItemRight bottomAlign"><span class="name"><b>colorBuffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColorBuffer</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorBufferChanged</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_color_buffer(&self) -> ::qt_core::Receiver<(*mut crate::QRenderTargetOutput,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setColorBuffer(Qt3DRender::QRenderTargetOutput *)\0",
                ),
            )
        }
    }

    /// <p>Specifies the buffer type to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClearBuffers::buffersChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#buffers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the buffer type to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>buffers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffers</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>buffersChanged</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn buffers_changed(&self) -> ::qt_core::Signal<(crate::q_clear_buffers::BufferType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2buffersChanged(Qt3DRender::QClearBuffers::BufferType)\0",
                ),
            )
        }
    }

    /// <p>Specifies the clear color to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClearBuffers::clearColorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearColor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear color to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn clear_color_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QColor,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2clearColorChanged(QColor const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the clear depth value to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClearBuffers::clearDepthValueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearDepthValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear depth value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearDepthValue</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValueChanged</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn clear_depth_value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2clearDepthValueChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the stencil value to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClearBuffers::clearStencilValueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearStencilValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the stencil value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearStencilValue</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValueChanged</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn clear_stencil_value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2clearStencilValueChanged(int)\0",
                ),
            )
        }
    }

    /// <p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClearBuffers::colorBufferChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#colorBuffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTargetOutput *</td><td class="memItemRight bottomAlign"><span class="name"><b>colorBuffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColorBuffer</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorBufferChanged</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn color_buffer_changed(&self) -> ::qt_core::Signal<(*mut crate::QRenderTargetOutput,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2colorBufferChanged(Qt3DRender::QRenderTargetOutput *)\0",
                ),
            )
        }
    }

    /// <p>Specifies the buffer type to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClearBuffers::BufferType Qt3DRender::QClearBuffers::buffers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#buffers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the buffer type to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>buffers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffers</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>buffersChanged</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn buffers(&self) -> crate::q_clear_buffers::BufferType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_buffers(
            self as *const crate::QClearBuffers,
        )
    }

    /// <p>Specifies the clear color to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QColor Qt3DRender::QClearBuffers::clearColor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearColor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear color to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn clear_color(&self) -> ::cpp_core::CppBox<::qt_gui::QColor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_clearColor(
                self as *const crate::QClearBuffers,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the clear depth value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QClearBuffers::clearDepthValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearDepthValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear depth value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearDepthValue</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValueChanged</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn clear_depth_value(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_clearDepthValue(
            self as *const crate::QClearBuffers,
        )
    }

    /// <p>Specifies the stencil value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QClearBuffers::clearStencilValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearStencilValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the stencil value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearStencilValue</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValueChanged</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn clear_stencil_value(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_clearStencilValue(
            self as *const crate::QClearBuffers,
        )
    }

    /// <p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* Qt3DRender::QClearBuffers::colorBuffer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#colorBuffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTargetOutput *</td><td class="memItemRight bottomAlign"><span class="name"><b>colorBuffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColorBuffer</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorBufferChanged</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn color_buffer(&self) -> ::qt_core::QPtr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_colorBuffer(
                self as *const crate::QClearBuffers,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QClearBuffers::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_metaObject(
                self as *const crate::QClearBuffers,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QClearBuffers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QClearBuffers::QClearBuffers(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#QClearBuffers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QClearBuffers.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QClearBuffers> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_QClearBuffers(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Class to clear buffers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QClearBuffers::QClearBuffers()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Class to clear buffers</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">Qt3DRender::QClearBuffers</a> FrameGraph node enables clearing of the specific render target buffers with specific values.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QClearBuffers> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_QClearBuffers1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QClearBuffers::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_qt_metacall(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QClearBuffers::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_qt_metacast(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
            arg1,
        )
    }

    /// <p>Specifies the buffer type to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClearBuffers::setBuffers(Qt3DRender::QClearBuffers::BufferType buffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#buffers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the buffer type to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> BufferType </td><td class="memItemRight bottomAlign"><span class="name"><b>buffers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBuffers</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>buffersChanged</b></span>(BufferType <i>buffers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_buffers(&self, buffers: crate::q_clear_buffers::BufferType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_setBuffers(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
            buffers,
        )
    }

    /// <p>Specifies the clear color to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClearBuffers::setClearColor(const QColor& color)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearColor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear color to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QColor </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearColor</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearColorChanged</b></span>(const QColor &amp;<i>color</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_clear_color(
        &self,
        color: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QColor>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_setClearColor(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QColor>>::cast_into(color)
                .as_raw_ptr(),
        )
    }

    /// <p>Specifies the clear depth value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClearBuffers::setClearDepthValue(float clearDepthValue)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearDepthValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the clear depth value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearDepthValue</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearDepthValueChanged</b></span>(float <i>clearDepthValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_clear_depth_value(&self, clear_depth_value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_setClearDepthValue(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
            clear_depth_value,
        )
    }

    /// <p>Specifies the stencil value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClearBuffers::setClearStencilValue(int clearStencilValue)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#clearStencilValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the stencil value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setClearStencilValue</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>clearStencilValueChanged</b></span>(int <i>clearStencilValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_clear_stencil_value(&self, clear_stencil_value: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_setClearStencilValue(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
            clear_stencil_value,
        )
    }

    /// <p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClearBuffers::setColorBuffer(Qt3DRender::QRenderTargetOutput* buffer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#colorBuffer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies a specific color buffer to clear. If set to NULL (default), and <a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html#BufferType-enum">ColorBuffer</a> flag is set, all color buffers will be cleared.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTargetOutput *</td><td class="memItemRight bottomAlign"><span class="name"><b>colorBuffer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setColorBuffer</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>colorBufferChanged</b></span>(QRenderTargetOutput *<i>buffer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_color_buffer(
        &self,
        buffer: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTargetOutput>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_setColorBuffer(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTargetOutput>>::cast_into(buffer)
                .as_raw_ptr() as *mut crate::QRenderTargetOutput,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QClearBuffers::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QClearBuffers::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Enables an additional OpenGL clipping plane that can be in shaders using gl_ClipDistance</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QClipPlane```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables an additional OpenGL clipping plane that can be in shaders using gl_ClipDistance</p>
/// <p>By default, OpenGL supports up to 8 additional clipping planes. Qt3DCore::QClipPlane allows to enable one of these additional planes. These planes can then be manipulated in the shaders using gl_ClipDistance[i] where i varies between 0 and 7. The underlying implementation may support more than 8 clip planes, but it is not guaranteed.</p></div>
#[repr(C)]
pub struct QClipPlane {
    _unused: u8,
}
impl QClipPlane {
    /// <p>Holds the index of the plane.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClipPlane::setPlaneIndex` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#planeIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the index of the plane.</p>
    /// <p><b>Note: </b>Usually between 0-7.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPlaneIndex</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndexChanged</b></span>(int <i>planeIndex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_plane_index(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setPlaneIndex(int)\0"),
            )
        }
    }

    /// <p>Holds the normal of the plane.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClipPlane::setNormal` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#normal-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the normal of the plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>normal</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormal</b></span>(<i>QVector3D</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalChanged</b></span>(QVector3D <i>normal</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_normal(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setNormal(QVector3D)\0"),
            )
        }
    }

    /// <p>Holds the distance of the plane from the world origin.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QClipPlane::setDistance` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#distance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance of the plane from the world origin.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistance</b></span>(<i>float</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceChanged</b></span>(float <i>distance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_distance(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDistance(float)\0"),
            )
        }
    }

    /// <p>Holds the index of the plane.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClipPlane::planeIndexChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#planeIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the index of the plane.</p>
    /// <p><b>Note: </b>Usually between 0-7.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPlaneIndex</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndexChanged</b></span>(int <i>planeIndex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn plane_index_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2planeIndexChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the normal of the plane.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClipPlane::normalChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#normal-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the normal of the plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>normal</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormal</b></span>(<i>QVector3D</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalChanged</b></span>(QVector3D <i>normal</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn normal_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2normalChanged(QVector3D)\0"),
            )
        }
    }

    /// <p>Holds the distance of the plane from the world origin.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QClipPlane::distanceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#distance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance of the plane from the world origin.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistance</b></span>(<i>float</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceChanged</b></span>(float <i>distance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn distance_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2distanceChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the distance of the plane from the world origin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QClipPlane::distance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#distance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance of the plane from the world origin.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistance</b></span>(<i>float</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceChanged</b></span>(float <i>distance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn distance(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_distance(
            self as *const crate::QClipPlane,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QClipPlane::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_metaObject(
                self as *const crate::QClipPlane,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QClipPlane.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QClipPlane::QClipPlane(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#QClipPlane">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QClipPlane.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QClipPlane> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_QClipPlane(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Enables an additional OpenGL clipping plane that can be in shaders using gl_ClipDistance</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QClipPlane::QClipPlane()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables an additional OpenGL clipping plane that can be in shaders using gl_ClipDistance</p>
    /// <p>By default, OpenGL supports up to 8 additional clipping planes. Qt3DCore::QClipPlane allows to enable one of these additional planes. These planes can then be manipulated in the shaders using gl_ClipDistance[i] where i varies between 0 and 7. The underlying implementation may support more than 8 clip planes, but it is not guaranteed.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QClipPlane> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_QClipPlane1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Holds the normal of the plane.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QClipPlane::normal() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#normal-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the normal of the plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>normal</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormal</b></span>(<i>QVector3D</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalChanged</b></span>(QVector3D <i>normal</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn normal(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_normal(
                self as *const crate::QClipPlane,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the index of the plane.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QClipPlane::planeIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#planeIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the index of the plane.</p>
    /// <p><b>Note: </b>Usually between 0-7.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPlaneIndex</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndexChanged</b></span>(int <i>planeIndex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn plane_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_planeIndex(
            self as *const crate::QClipPlane,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QClipPlane::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_qt_metacall(
            self as *const crate::QClipPlane as *mut crate::QClipPlane,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QClipPlane::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_qt_metacast(
            self as *const crate::QClipPlane as *mut crate::QClipPlane,
            arg1,
        )
    }

    /// <p>Holds the distance of the plane from the world origin.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClipPlane::setDistance(float arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#distance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance of the plane from the world origin.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistance</b></span>(<i>float</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceChanged</b></span>(float <i>distance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_distance(&self, arg1: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_setDistance(
            self as *const crate::QClipPlane as *mut crate::QClipPlane,
            arg1,
        )
    }

    /// <p>Holds the normal of the plane.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClipPlane::setNormal(QVector3D arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#normal-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the normal of the plane.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>normal</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormal</b></span>(<i>QVector3D</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalChanged</b></span>(QVector3D <i>normal</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_normal(
        &self,
        arg1: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_setNormal(
            self as *const crate::QClipPlane as *mut crate::QClipPlane,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(arg1)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the index of the plane.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QClipPlane::setPlaneIndex(int arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qclipplane.html#planeIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the index of the plane.</p>
    /// <p><b>Note: </b>Usually between 0-7.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPlaneIndex</b></span>(<i>int</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>planeIndexChanged</b></span>(int <i>planeIndex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_plane_index(&self, arg1: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_setPlaneIndex(
            self as *const crate::QClipPlane as *mut crate::QClipPlane,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QClipPlane::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QClipPlane::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Allows specifying which color components should be written to the currently bound frame buffer.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QColorMask```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Allows specifying which color components should be written to the currently bound frame buffer.</p>
/// <p>By default, the property for each color component (red, green, blue, alpha) is set to <code>true</code> which means they will be written to the frame buffer. Setting any of the color component to <code>false</code> will prevent it from being written into the frame buffer.</p></div>
#[repr(C)]
pub struct QColorMask {
    _unused: u8,
}
impl QColorMask {
    /// <p>Holds whether the red color component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QColorMask::setRedMasked` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#redMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the red color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isRedMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRedMasked</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>redMaskedChanged</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_red_masked(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setRedMasked(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the green color component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QColorMask::setGreenMasked` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#greenMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the green color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isGreenMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGreenMasked</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>greenMaskedChanged</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_green_masked(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setGreenMasked(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the blue color component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QColorMask::setBlueMasked` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#blueMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the blue color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isBlueMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlueMasked</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blueMaskedChanged</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_blue_masked(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setBlueMasked(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QColorMask::setAlphaMasked` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#alphaMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isAlphaMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaMasked</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaMaskedChanged</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_alpha_masked(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setAlphaMasked(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the red color component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QColorMask::redMaskedChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#redMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the red color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isRedMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRedMasked</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>redMaskedChanged</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn red_masked_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2redMaskedChanged(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the green color component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QColorMask::greenMaskedChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#greenMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the green color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isGreenMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGreenMasked</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>greenMaskedChanged</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn green_masked_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2greenMaskedChanged(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the blue color component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QColorMask::blueMaskedChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#blueMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the blue color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isBlueMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlueMasked</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blueMaskedChanged</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn blue_masked_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2blueMaskedChanged(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QColorMask::alphaMaskedChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#alphaMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isAlphaMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaMasked</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaMaskedChanged</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn alpha_masked_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2alphaMaskedChanged(bool)\0"),
            )
        }
    }

    /// <p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QColorMask::isAlphaMasked() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#alphaMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isAlphaMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaMasked</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaMaskedChanged</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_alpha_masked(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_isAlphaMasked(
            self as *const crate::QColorMask,
        )
    }

    /// <p>Holds whether the blue color component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QColorMask::isBlueMasked() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#blueMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the blue color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isBlueMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlueMasked</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blueMaskedChanged</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_blue_masked(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_isBlueMasked(
            self as *const crate::QColorMask,
        )
    }

    /// <p>Holds whether the green color component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QColorMask::isGreenMasked() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#greenMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the green color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isGreenMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGreenMasked</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>greenMaskedChanged</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_green_masked(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_isGreenMasked(
            self as *const crate::QColorMask,
        )
    }

    /// <p>Holds whether the red color component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QColorMask::isRedMasked() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#redMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the red color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isRedMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRedMasked</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>redMaskedChanged</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_red_masked(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_isRedMasked(
            self as *const crate::QColorMask,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QColorMask::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_metaObject(
                self as *const crate::QColorMask,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QColorMask.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QColorMask::QColorMask(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#QColorMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QColorMask.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QColorMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_QColorMask(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Allows specifying which color components should be written to the currently bound frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QColorMask::QColorMask()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Allows specifying which color components should be written to the currently bound frame buffer.</p>
    /// <p>By default, the property for each color component (red, green, blue, alpha) is set to <code>true</code> which means they will be written to the frame buffer. Setting any of the color component to <code>false</code> will prevent it from being written into the frame buffer.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QColorMask> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_QColorMask1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QColorMask::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_qt_metacall(
            self as *const crate::QColorMask as *mut crate::QColorMask,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QColorMask::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_qt_metacast(
            self as *const crate::QColorMask as *mut crate::QColorMask,
            arg1,
        )
    }

    /// <p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QColorMask::setAlphaMasked(bool alphaMasked)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#alphaMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the alphaMasked component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isAlphaMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAlphaMasked</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>alphaMaskedChanged</b></span>(bool <i>alphaMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_alpha_masked(&self, alpha_masked: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_setAlphaMasked(
            self as *const crate::QColorMask as *mut crate::QColorMask,
            alpha_masked,
        )
    }

    /// <p>Holds whether the blue color component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QColorMask::setBlueMasked(bool blueMasked)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#blueMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the blue color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isBlueMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBlueMasked</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>blueMaskedChanged</b></span>(bool <i>blueMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_blue_masked(&self, blue_masked: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_setBlueMasked(
            self as *const crate::QColorMask as *mut crate::QColorMask,
            blue_masked,
        )
    }

    /// <p>Holds whether the green color component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QColorMask::setGreenMasked(bool greenMasked)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#greenMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the green color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isGreenMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGreenMasked</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>greenMaskedChanged</b></span>(bool <i>greenMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_green_masked(&self, green_masked: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_setGreenMasked(
            self as *const crate::QColorMask as *mut crate::QColorMask,
            green_masked,
        )
    }

    /// <p>Holds whether the red color component should be written to the frame buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QColorMask::setRedMasked(bool redMasked)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcolormask.html#redMasked-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds whether the red color component should be written to the frame buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isRedMasked</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRedMasked</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>redMaskedChanged</b></span>(bool <i>redMasked</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_red_masked(&self, red_masked: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_setRedMasked(
            self as *const crate::QColorMask as *mut crate::QColorMask,
            red_masked,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QColorMask::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QColorMask::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_compute_command {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QComputeCommand```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QComputeCommand::RunType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RunType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RunType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RunType(value)
        }
    }

    impl From<RunType> for ::std::os::raw::c_int {
        fn from(value: RunType) -> Self {
            value.0
        }
    }

    impl RunType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RunType {
        /// C++ enum variant: <span style='color: green;'>```Continuous = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Continuous: crate::q_compute_command::RunType =
            crate::q_compute_command::RunType(0);
        /// C++ enum variant: <span style='color: green;'>```Manual = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Manual: crate::q_compute_command::RunType = crate::q_compute_command::RunType(1);
    }
}
/// <p><a href="http://doc.qt.io/qt-5/qt3dcore-qcomponent.html">QComponent</a> to issue work for the compute shader on GPU</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QComputeCommand```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3dcore-qcomponent.html">QComponent</a> to issue work for the compute shader on GPU</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">Qt3DRender::QComputeCommand</a> is used to issue work for the compute shader. The compute shader is specified in the <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> component of the same entity the <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">QComputeCommand</a> is added to. The <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">workGroupX</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">workGroupY</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">workGroupZ</a> properties specify the work group sizes for the compute shader invocation. <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">Qt3DRender::QDispatchCompute</a> node needs to be present in the FrameGraph to actually issue the commands.</p>
/// <p><b>Note: </b>If the rendering policy is set to <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#RenderPolicy-enum">Qt3DRender::QRenderSettings::OnDemand</a> and there are no changes to the scene, the <a href="http://doc.qt.io/qt-5/qml-computecommand.html">ComputeCommand</a> will not be invoked repeatedly. The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#RenderPolicy-enum">Qt3DRender::QRenderSettings::Always</a> render policy must be set for the <a href="http://doc.qt.io/qt-5/qml-computecommand.html">ComputeCommand</a> to be repeatedly invoked if there are no other changes to the scene that triggers rendering a new frame.</p></div>
#[repr(C)]
pub struct QComputeCommand {
    _unused: u8,
}
impl QComputeCommand {
    /// <p>Sets the workgroup for the first dimension to <i>workGroupX</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QComputeCommand::setWorkGroupX` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the workgroup for the first dimension to <i>workGroupX</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">workGroupX</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">workGroupX</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_work_group_x(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWorkGroupX(int)\0"),
            )
        }
    }

    /// <p>Sets the workgroup for the second dimension to <i>workGroupY</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QComputeCommand::setWorkGroupY` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the workgroup for the second dimension to <i>workGroupY</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">workGroupY</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">workGroupY</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_work_group_y(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWorkGroupY(int)\0"),
            )
        }
    }

    /// <p>Sets the workgroup for the third dimension to <i>workGroupZ</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QComputeCommand::setWorkGroupZ` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the workgroup for the third dimension to <i>workGroupZ</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">workGroupZ</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">workGroupZ</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_work_group_z(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWorkGroupZ(int)\0"),
            )
        }
    }

    /// <p>Specifies X workgroup size.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QComputeCommand::workGroupXChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies X workgroup size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupX</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupX">setWorkGroupX</a></b></span>(int <i>workGroupX</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupXChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn work_group_x_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2workGroupXChanged()\0"),
            )
        }
    }

    /// <p>Specifies Y workgroup size.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QComputeCommand::workGroupYChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Y workgroup size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupY</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupY">setWorkGroupY</a></b></span>(int <i>workGroupY</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupYChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn work_group_y_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2workGroupYChanged()\0"),
            )
        }
    }

    /// <p>Specifies Z workgroup size.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QComputeCommand::workGroupZChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Z workgroup size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZ</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupZ">setWorkGroupZ</a></b></span>(int <i>workGroupZ</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn work_group_z_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2workGroupZChanged()\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QComputeCommand::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_metaObject(
                self as *const crate::QComputeCommand,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">Qt3DRender::QComputeCommand</a> instance with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QComputeCommand::QComputeCommand(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#QComputeCommand">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">Qt3DRender::QComputeCommand</a> instance with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QComputeCommand> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_QComputeCommand(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p><a href="http://doc.qt.io/qt-5/qt3dcore-qcomponent.html">QComponent</a> to issue work for the compute shader on GPU</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QComputeCommand::QComputeCommand()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3dcore-qcomponent.html">QComponent</a> to issue work for the compute shader on GPU</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">Qt3DRender::QComputeCommand</a> is used to issue work for the compute shader. The compute shader is specified in the <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> component of the same entity the <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">QComputeCommand</a> is added to. The <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">workGroupX</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">workGroupY</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">workGroupZ</a> properties specify the work group sizes for the compute shader invocation. <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">Qt3DRender::QDispatchCompute</a> node needs to be present in the FrameGraph to actually issue the commands.</p>
    /// <p><b>Note: </b>If the rendering policy is set to <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#RenderPolicy-enum">Qt3DRender::QRenderSettings::OnDemand</a> and there are no changes to the scene, the <a href="http://doc.qt.io/qt-5/qml-computecommand.html">ComputeCommand</a> will not be invoked repeatedly. The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#RenderPolicy-enum">Qt3DRender::QRenderSettings::Always</a> render policy must be set for the <a href="http://doc.qt.io/qt-5/qml-computecommand.html">ComputeCommand</a> to be repeatedly invoked if there are no other changes to the scene that triggers rendering a new frame.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QComputeCommand> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_QComputeCommand1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QComputeCommand::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_qt_metacall(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QComputeCommand::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_qt_metacast(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            arg1,
        )
    }

    /// <p>Specifies whether the compute command should be performed every frame or manually triggered.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QComputeCommand::RunType Qt3DRender::QComputeCommand::runType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#runType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies whether the compute command should be performed every frame or manually triggered.</p>
    /// <p>If set to Continuous, Compute command is executed everyframe. This is the default.</p>
    /// <p>If set to Manual CompouteCommand is executed for a given number of frames and then the component disables itself.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QComputeCommand::RunType </td><td class="memItemRight bottomAlign"><span class="name"><b>runType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRunType</b></span>(Qt3DRender::QComputeCommand::RunType <i>runType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>runTypeChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn run_type(&self) -> crate::q_compute_command::RunType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_runType(
            self as *const crate::QComputeCommand,
        )
    }

    /// <p>Specifies whether the compute command should be performed every frame or manually triggered.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QComputeCommand::runTypeChanged()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#runType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies whether the compute command should be performed every frame or manually triggered.</p>
    /// <p>If set to Continuous, Compute command is executed everyframe. This is the default.</p>
    /// <p>If set to Manual CompouteCommand is executed for a given number of frames and then the component disables itself.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QComputeCommand::RunType </td><td class="memItemRight bottomAlign"><span class="name"><b>runType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRunType</b></span>(Qt3DRender::QComputeCommand::RunType <i>runType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>runTypeChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn run_type_changed(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_runTypeChanged(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
        )
    }

    /// <p>Specifies whether the compute command should be performed every frame or manually triggered.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QComputeCommand::setRunType(Qt3DRender::QComputeCommand::RunType runType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#runType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies whether the compute command should be performed every frame or manually triggered.</p>
    /// <p>If set to Continuous, Compute command is executed everyframe. This is the default.</p>
    /// <p>If set to Manual CompouteCommand is executed for a given number of frames and then the component disables itself.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QComputeCommand::RunType </td><td class="memItemRight bottomAlign"><span class="name"><b>runType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRunType</b></span>(Qt3DRender::QComputeCommand::RunType <i>runType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>runTypeChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_run_type(&self, run_type: crate::q_compute_command::RunType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_setRunType(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            run_type,
        )
    }

    /// <p>Sets the workgroup for the first dimension to <i>workGroupX</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QComputeCommand::setWorkGroupX(int workGroupX)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the workgroup for the first dimension to <i>workGroupX</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">workGroupX</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">workGroupX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_work_group_x(&self, work_group_x: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_setWorkGroupX(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            work_group_x,
        )
    }

    /// <p>Sets the workgroup for the second dimension to <i>workGroupY</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QComputeCommand::setWorkGroupY(int workGroupY)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the workgroup for the second dimension to <i>workGroupY</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">workGroupY</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">workGroupY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_work_group_y(&self, work_group_y: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_setWorkGroupY(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            work_group_y,
        )
    }

    /// <p>Sets the workgroup for the third dimension to <i>workGroupZ</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QComputeCommand::setWorkGroupZ(int workGroupZ)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the workgroup for the third dimension to <i>workGroupZ</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">workGroupZ</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">workGroupZ</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_work_group_z(&self, work_group_z: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_setWorkGroupZ(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            work_group_z,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QComputeCommand::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QComputeCommand::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QComputeCommand::trigger(int frameCount = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#trigger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_1a(&self, frame_count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_trigger(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            frame_count,
        )
    }

    /// <p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false. The size of the workgroup previously set will be overridden with <i>workGroupX</i>, <i>workGroupY</i>, <i>workGroupZ</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QComputeCommand::trigger(int workGroupX, int workGroupY, int workGroupZ, int frameCount = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#trigger-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false. The size of the workgroup previously set will be overridden with <i>workGroupX</i>, <i>workGroupY</i>, <i>workGroupZ</i>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_4a(
        &self,
        work_group_x: ::std::os::raw::c_int,
        work_group_y: ::std::os::raw::c_int,
        work_group_z: ::std::os::raw::c_int,
        frame_count: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_trigger1(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            work_group_x,
            work_group_y,
            work_group_z,
            frame_count,
        )
    }

    /// <p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QComputeCommand::trigger()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#trigger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_0a(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_trigger2(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
        )
    }

    /// <p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false. The size of the workgroup previously set will be overridden with <i>workGroupX</i>, <i>workGroupY</i>, <i>workGroupZ</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QComputeCommand::trigger(int workGroupX, int workGroupY, int workGroupZ)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#trigger-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When the run type is set to Manual, calling trigger will make the compute command be executed for the next <i>frameCount</i> frames. Upon completion of the execution, the enabled property will be set to false. The size of the workgroup previously set will be overridden with <i>workGroupX</i>, <i>workGroupY</i>, <i>workGroupZ</i>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_3a(
        &self,
        work_group_x: ::std::os::raw::c_int,
        work_group_y: ::std::os::raw::c_int,
        work_group_z: ::std::os::raw::c_int,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_trigger3(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
            work_group_x,
            work_group_y,
            work_group_z,
        )
    }

    /// <p>Specifies X workgroup size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QComputeCommand::workGroupX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies X workgroup size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupX</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupX">setWorkGroupX</a></b></span>(int <i>workGroupX</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupXChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn work_group_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_workGroupX(
            self as *const crate::QComputeCommand,
        )
    }

    /// <p>Specifies Y workgroup size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QComputeCommand::workGroupY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Y workgroup size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupY</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupY">setWorkGroupY</a></b></span>(int <i>workGroupY</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupYChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn work_group_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_workGroupY(
            self as *const crate::QComputeCommand,
        )
    }

    /// <p>Specifies Z workgroup size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QComputeCommand::workGroupZ() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#workGroupZ-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Z workgroup size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZ</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html#setWorkGroupZ">setWorkGroupZ</a></b></span>(int <i>workGroupZ</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn work_group_z(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_workGroupZ(
            self as *const crate::QComputeCommand,
        )
    }
}

pub mod q_cull_face {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QCullFace```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QCullFace::CullingMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct CullingMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for CullingMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            CullingMode(value)
        }
    }

    impl From<CullingMode> for ::std::os::raw::c_int {
        fn from(value: CullingMode) -> Self {
            value.0
        }
    }

    impl CullingMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl CullingMode {
        /// C++ enum variant: <span style='color: green;'>```NoCulling = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoCulling: crate::q_cull_face::CullingMode = crate::q_cull_face::CullingMode(0);
        /// C++ enum variant: <span style='color: green;'>```Front = 1028```</span>
        #[allow(non_upper_case_globals)]
        pub const Front: crate::q_cull_face::CullingMode = crate::q_cull_face::CullingMode(1028);
        /// C++ enum variant: <span style='color: green;'>```Back = 1029```</span>
        #[allow(non_upper_case_globals)]
        pub const Back: crate::q_cull_face::CullingMode = crate::q_cull_face::CullingMode(1029);
        /// C++ enum variant: <span style='color: green;'>```FrontAndBack = 1032```</span>
        #[allow(non_upper_case_globals)]
        pub const FrontAndBack: crate::q_cull_face::CullingMode =
            crate::q_cull_face::CullingMode(1032);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a> class specifies whether front or back face culling is enabled.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QCullFace```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a> class specifies whether front or back face culling is enabled.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a> sets whether the front or back facets are culled. Facets include triangles, quadrilaterals, polygons and rectangles.</p>
/// <p>It can be added by calling the addRenderState() method on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>:</p>
/// <pre class="cpp">
///
///   <span class="comment">// using namespace Qt3DRender;</span>
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>renderPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
///
///   <span class="comment">// Create a front face culling render state</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span> <span class="operator">*</span>cullFront <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span>();
///   cullFront<span class="operator">-</span><span class="operator">&gt;</span>setMode(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span><span class="operator">::</span>Front);
///
///   <span class="comment">// Add the render state to the render pass</span>
///   renderPass<span class="operator">-</span><span class="operator">&gt;</span>addRenderState(cullFront);
///
/// </pre>
/// <p>Or by calling the addRenderState() method on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a>:</p>
/// <pre class="cpp">
///
///   <span class="comment">// using namespace Qt3DRender;</span>
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a></span> <span class="operator">*</span>renderStateSet <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a></span>();
///
///   <span class="comment">// Create a front face culling render state</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span> <span class="operator">*</span>cullFront <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span>();
///   cullFront<span class="operator">-</span><span class="operator">&gt;</span>setMode(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span><span class="operator">::</span>Front);
///
///   <span class="comment">// Add the render state to the render pass</span>
///   renderStateSet<span class="operator">-</span><span class="operator">&gt;</span>addRenderState(cullFront);
///
/// </pre></div>
#[repr(C)]
pub struct QCullFace {
    _unused: u8,
}
impl QCullFace {
    /// <p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QCullFace::setMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#mode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> CullingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>mode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMode</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>modeChanged</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_mode(&self) -> ::qt_core::Receiver<(crate::q_cull_face::CullingMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setMode(Qt3DRender::QCullFace::CullingMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QCullFace::modeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#mode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> CullingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>mode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMode</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>modeChanged</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mode_changed(&self) -> ::qt_core::Signal<(crate::q_cull_face::CullingMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2modeChanged(Qt3DRender::QCullFace::CullingMode)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QCullFace::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_metaObject(
                self as *const crate::QCullFace,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCullFace::CullingMode Qt3DRender::QCullFace::mode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#mode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> CullingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>mode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMode</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>modeChanged</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn mode(&self) -> crate::q_cull_face::CullingMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_mode(
            self as *const crate::QCullFace,
        )
    }

    /// <p>Default constructs an instance of QCullFace.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCullFace::QCullFace(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QCullFace.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QCullFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_QCullFace(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a> class specifies whether front or back face culling is enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QCullFace::QCullFace()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a> class specifies whether front or back face culling is enabled.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a> sets whether the front or back facets are culled. Facets include triangles, quadrilaterals, polygons and rectangles.</p>
    /// <p>It can be added by calling the addRenderState() method on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="comment">// using namespace Qt3DRender;</span>
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>renderPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
    ///
    ///   <span class="comment">// Create a front face culling render state</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span> <span class="operator">*</span>cullFront <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span>();
    ///   cullFront<span class="operator">-</span><span class="operator">&gt;</span>setMode(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span><span class="operator">::</span>Front);
    ///
    ///   <span class="comment">// Add the render state to the render pass</span>
    ///   renderPass<span class="operator">-</span><span class="operator">&gt;</span>addRenderState(cullFront);
    ///
    /// </pre>
    /// <p>Or by calling the addRenderState() method on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a>:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="comment">// using namespace Qt3DRender;</span>
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a></span> <span class="operator">*</span>renderStateSet <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a></span>();
    ///
    ///   <span class="comment">// Create a front face culling render state</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span> <span class="operator">*</span>cullFront <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span>();
    ///   cullFront<span class="operator">-</span><span class="operator">&gt;</span>setMode(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#QCullFace">QCullFace</a></span><span class="operator">::</span>Front);
    ///
    ///   <span class="comment">// Add the render state to the render pass</span>
    ///   renderStateSet<span class="operator">-</span><span class="operator">&gt;</span>addRenderState(cullFront);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QCullFace> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_QCullFace1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QCullFace::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_qt_metacall(
            self as *const crate::QCullFace as *mut crate::QCullFace,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QCullFace::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_qt_metacast(
            self as *const crate::QCullFace as *mut crate::QCullFace,
            arg1,
        )
    }

    /// <p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QCullFace::setMode(Qt3DRender::QCullFace::CullingMode mode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html#mode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the culling mode used by <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>. Default is set to <a href="http://doc.qt.io/qt-5/qt3drender-qcullface.html">QCullFace</a>.Back.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> CullingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>mode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMode</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>modeChanged</b></span>(CullingMode <i>mode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_mode(&self, mode: crate::q_cull_face::CullingMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_setMode(
            self as *const crate::QCullFace as *mut crate::QCullFace,
            mode,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCullFace::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QCullFace::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_depth_test {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QDepthTest```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QDepthTest::DepthFunction```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct DepthFunction(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for DepthFunction {
        fn from(value: ::std::os::raw::c_int) -> Self {
            DepthFunction(value)
        }
    }

    impl From<DepthFunction> for ::std::os::raw::c_int {
        fn from(value: DepthFunction) -> Self {
            value.0
        }
    }

    impl DepthFunction {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl DepthFunction {
        /// C++ enum variant: <span style='color: green;'>```Never = 512```</span>
        #[allow(non_upper_case_globals)]
        pub const Never: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(512);
        /// C++ enum variant: <span style='color: green;'>```Always = 519```</span>
        #[allow(non_upper_case_globals)]
        pub const Always: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(519);
        /// C++ enum variant: <span style='color: green;'>```Less = 513```</span>
        #[allow(non_upper_case_globals)]
        pub const Less: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(513);
        /// C++ enum variant: <span style='color: green;'>```LessOrEqual = 515```</span>
        #[allow(non_upper_case_globals)]
        pub const LessOrEqual: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(515);
        /// C++ enum variant: <span style='color: green;'>```Equal = 514```</span>
        #[allow(non_upper_case_globals)]
        pub const Equal: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(514);
        /// C++ enum variant: <span style='color: green;'>```GreaterOrEqual = 518```</span>
        #[allow(non_upper_case_globals)]
        pub const GreaterOrEqual: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(518);
        /// C++ enum variant: <span style='color: green;'>```Greater = 516```</span>
        #[allow(non_upper_case_globals)]
        pub const Greater: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(516);
        /// C++ enum variant: <span style='color: green;'>```NotEqual = 517```</span>
        #[allow(non_upper_case_globals)]
        pub const NotEqual: crate::q_depth_test::DepthFunction =
            crate::q_depth_test::DepthFunction(517);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> class tests the fragment shader's depth value against the depth of a sample being written to.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QDepthTest```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> class tests the fragment shader's depth value against the depth of a sample being written to.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> class is used to enable depth testing with a given depth test function. The depth test enables writing fragment color values when the depth test passes, and reject fragments which fail the test. The depth test uses the depth function to test the fragments depth value to the value against z-buffer. If the underlying surface does not have z-buffer, then <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> does nothing.</p></div>
#[repr(C)]
pub struct QDepthTest {
    _unused: u8,
}
impl QDepthTest {
    /// <p>Holds the current function used by depth test. The default is Never.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QDepthTest::setDepthFunction` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html#depthFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current function used by depth test. The default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> DepthFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthFunction</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunctionChanged</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_depth_function(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_depth_test::DepthFunction,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setDepthFunction(Qt3DRender::QDepthTest::DepthFunction)\0",
                ),
            )
        }
    }

    /// <p>Holds the current function used by depth test. The default is Never.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QDepthTest::depthFunctionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html#depthFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current function used by depth test. The default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> DepthFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthFunction</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunctionChanged</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn depth_function_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_depth_test::DepthFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2depthFunctionChanged(Qt3DRender::QDepthTest::DepthFunction)\0",
                ),
            )
        }
    }

    /// <p>Holds the current function used by depth test. The default is Never.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthTest::DepthFunction Qt3DRender::QDepthTest::depthFunction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html#depthFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current function used by depth test. The default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> DepthFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthFunction</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunctionChanged</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn depth_function(&self) -> crate::q_depth_test::DepthFunction {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_depthFunction(
            self as *const crate::QDepthTest,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QDepthTest::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_metaObject(
                self as *const crate::QDepthTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QDepthTest.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDepthTest::QDepthTest(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html#QDepthTest">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QDepthTest.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QDepthTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_QDepthTest(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> class tests the fragment shader's depth value against the depth of a sample being written to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDepthTest::QDepthTest()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> class tests the fragment shader's depth value against the depth of a sample being written to.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> class is used to enable depth testing with a given depth test function. The depth test enables writing fragment color values when the depth test passes, and reject fragments which fail the test. The depth test uses the depth function to test the fragments depth value to the value against z-buffer. If the underlying surface does not have z-buffer, then <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a> does nothing.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QDepthTest> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_QDepthTest1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QDepthTest::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_qt_metacall(
            self as *const crate::QDepthTest as *mut crate::QDepthTest,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QDepthTest::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_qt_metacast(
            self as *const crate::QDepthTest as *mut crate::QDepthTest,
            arg1,
        )
    }

    /// <p>Holds the current function used by depth test. The default is Never.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QDepthTest::setDepthFunction(Qt3DRender::QDepthTest::DepthFunction depthFunction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html#depthFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current function used by depth test. The default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> DepthFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthFunction</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthFunctionChanged</b></span>(DepthFunction <i>depthFunction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_depth_function(&self, depth_function: crate::q_depth_test::DepthFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_setDepthFunction(
            self as *const crate::QDepthTest as *mut crate::QDepthTest,
            depth_function,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDepthTest::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDepthTest::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Encapsulate a Directional Light object in a Qt 3D scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QDirectionalLight```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate a Directional Light object in a Qt 3D scene.</p></div>
#[repr(C)]
pub struct QDirectionalLight {
    _unused: u8,
}
impl QDirectionalLight {
    /// <p>Specifies the world direction of the directional light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QDirectionalLight::setWorldDirection` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html#worldDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the world direction of the directional light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorldDirection</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirectionChanged</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_world_direction(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setWorldDirection(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the world direction of the directional light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QDirectionalLight::worldDirectionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html#worldDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the world direction of the directional light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorldDirection</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirectionChanged</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn world_direction_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2worldDirectionChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QDirectionalLight::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_metaObject(
                self as *const crate::QDirectionalLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html">QDirectionalLight</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDirectionalLight::QDirectionalLight(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html#QDirectionalLight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html">QDirectionalLight</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_QDirectionalLight(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulate a Directional Light object in a Qt 3D scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDirectionalLight::QDirectionalLight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate a Directional Light object in a Qt 3D scene.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_QDirectionalLight1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QDirectionalLight::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_qt_metacall(
            self as *const crate::QDirectionalLight as *mut crate::QDirectionalLight,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QDirectionalLight::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_qt_metacast(
            self as *const crate::QDirectionalLight as *mut crate::QDirectionalLight,
            arg1,
        )
    }

    /// <p>Specifies the world direction of the directional light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QDirectionalLight::setWorldDirection(const QVector3D& worldDirection)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html#worldDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the world direction of the directional light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorldDirection</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirectionChanged</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_world_direction(
        &self,
        world_direction: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_setWorldDirection(
            self as *const crate::QDirectionalLight as *mut crate::QDirectionalLight,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                world_direction,
            )
            .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDirectionalLight::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDirectionalLight::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the world direction of the directional light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QDirectionalLight::worldDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdirectionallight.html#worldDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the world direction of the directional light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorldDirection</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>worldDirectionChanged</b></span>(const QVector3D &amp;<i>worldDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn world_direction(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_worldDirection(
                self as *const crate::QDirectionalLight,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>FrameGraph node to issue work for the compute shader on GPU</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QDispatchCompute```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>FrameGraph node to issue work for the compute shader on GPU</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">Qt3DRender::QDispatchCompute</a> allows work to be issued for the compute shader to run on the GPU. The <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupX-prop">workGroupX</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupY-prop">workGroupY</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupZ-prop">workGroupZ</a> properties specify the work group sizes for the compute shader invocation. <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">QComputeCommand</a> components need to be added to entities to instruct Qt3D to select the materials and geometry from the entities for the compute invocation. The work group sizes for the shader invocation will be the maximum of the work group sizes specified in <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">QDispatchCompute</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">QComputeCommand</a>.</p></div>
#[repr(C)]
pub struct QDispatchCompute {
    _unused: u8,
}
impl QDispatchCompute {
    /// <p>Specifies X workgroup.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QDispatchCompute::setWorkGroupX` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies X workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupX</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupX</b></span>(int <i>workGroupX</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupXChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_work_group_x(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWorkGroupX(int)\0"),
            )
        }
    }

    /// <p>Specifies Y workgroup.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QDispatchCompute::setWorkGroupY` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Y workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupY</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupY</b></span>(int <i>workGroupY</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupYChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_work_group_y(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWorkGroupY(int)\0"),
            )
        }
    }

    /// <p>Specifies Z workgroup.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QDispatchCompute::setWorkGroupZ` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupZ-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Z workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZ</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupZ</b></span>(int <i>workGroupZ</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_work_group_z(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWorkGroupZ(int)\0"),
            )
        }
    }

    /// <p>Specifies X workgroup.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QDispatchCompute::workGroupXChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies X workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupX</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupX</b></span>(int <i>workGroupX</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupXChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn work_group_x_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2workGroupXChanged()\0"),
            )
        }
    }

    /// <p>Specifies Y workgroup.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QDispatchCompute::workGroupYChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Y workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupY</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupY</b></span>(int <i>workGroupY</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupYChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn work_group_y_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2workGroupYChanged()\0"),
            )
        }
    }

    /// <p>Specifies Z workgroup.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QDispatchCompute::workGroupZChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupZ-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Z workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZ</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupZ</b></span>(int <i>workGroupZ</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn work_group_z_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2workGroupZChanged()\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QDispatchCompute::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_metaObject(
                self as *const crate::QDispatchCompute,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>The constructor creates an instance with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDispatchCompute::QDispatchCompute(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#QDispatchCompute">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates an instance with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QDispatchCompute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_QDispatchCompute(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>FrameGraph node to issue work for the compute shader on GPU</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDispatchCompute::QDispatchCompute()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>FrameGraph node to issue work for the compute shader on GPU</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">Qt3DRender::QDispatchCompute</a> allows work to be issued for the compute shader to run on the GPU. The <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupX-prop">workGroupX</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupY-prop">workGroupY</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupZ-prop">workGroupZ</a> properties specify the work group sizes for the compute shader invocation. <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">QComputeCommand</a> components need to be added to entities to instruct Qt3D to select the materials and geometry from the entities for the compute invocation. The work group sizes for the shader invocation will be the maximum of the work group sizes specified in <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html">QDispatchCompute</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qcomputecommand.html">QComputeCommand</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QDispatchCompute> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_QDispatchCompute1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QDispatchCompute::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_qt_metacall(
            self as *const crate::QDispatchCompute as *mut crate::QDispatchCompute,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QDispatchCompute::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_qt_metacast(
            self as *const crate::QDispatchCompute as *mut crate::QDispatchCompute,
            arg1,
        )
    }

    /// <p>Specifies X workgroup.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QDispatchCompute::setWorkGroupX(int workGroupX)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies X workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupX</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupX</b></span>(int <i>workGroupX</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupXChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_work_group_x(&self, work_group_x: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_setWorkGroupX(
            self as *const crate::QDispatchCompute as *mut crate::QDispatchCompute,
            work_group_x,
        )
    }

    /// <p>Specifies Y workgroup.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QDispatchCompute::setWorkGroupY(int workGroupY)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Y workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupY</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupY</b></span>(int <i>workGroupY</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupYChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_work_group_y(&self, work_group_y: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_setWorkGroupY(
            self as *const crate::QDispatchCompute as *mut crate::QDispatchCompute,
            work_group_y,
        )
    }

    /// <p>Specifies Z workgroup.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QDispatchCompute::setWorkGroupZ(int workGroupZ)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupZ-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Z workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZ</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupZ</b></span>(int <i>workGroupZ</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_work_group_z(&self, work_group_z: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_setWorkGroupZ(
            self as *const crate::QDispatchCompute as *mut crate::QDispatchCompute,
            work_group_z,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDispatchCompute::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDispatchCompute::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies X workgroup.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QDispatchCompute::workGroupX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupX-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies X workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupX</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupX</b></span>(int <i>workGroupX</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupXChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn work_group_x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_workGroupX(
            self as *const crate::QDispatchCompute,
        )
    }

    /// <p>Specifies Y workgroup.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QDispatchCompute::workGroupY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupY-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Y workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupY</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupY</b></span>(int <i>workGroupY</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupYChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn work_group_y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_workGroupY(
            self as *const crate::QDispatchCompute,
        )
    }

    /// <p>Specifies Z workgroup.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QDispatchCompute::workGroupZ() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdispatchcompute.html#workGroupZ-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies Z workgroup.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZ</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWorkGroupZ</b></span>(int <i>workGroupZ</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>workGroupZChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn work_group_z(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_workGroupZ(
            self as *const crate::QDispatchCompute,
        )
    }
}

/// <p>Enable dithering</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QDithering```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qdithering.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable dithering</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qdithering.html">Qt3DRender::QDithering</a> class enables dithering. Dithering adds noise to the color values to randomize quantization error in order to prevent large scale patterns in the final image, such as banding. Dithering is most useful when rendering to a surface with low color bit depth, such as RGB565 or RGBA4444.</p></div>
#[repr(C)]
pub struct QDithering {
    _unused: u8,
}
impl QDithering {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QDithering::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_metaObject(
                self as *const crate::QDithering,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QDithering.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDithering::QDithering(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdithering.html#QDithering">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QDithering.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QDithering> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_QDithering(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Enable dithering</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDithering::QDithering()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdithering.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable dithering</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qdithering.html">Qt3DRender::QDithering</a> class enables dithering. Dithering adds noise to the color values to randomize quantization error in order to prevent large scale patterns in the final image, such as banding. Dithering is most useful when rendering to a surface with low color bit depth, such as RGB565 or RGBA4444.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QDithering> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_QDithering1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QDithering::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_qt_metacall(
            self as *const crate::QDithering as *mut crate::QDithering,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QDithering::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_qt_metacast(
            self as *const crate::QDithering as *mut crate::QDithering,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDithering::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDithering::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The base class for effects in a Qt 3D scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QEffect```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The base class for effects in a Qt 3D scene.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> class combines a set of techniques and parameters used by those techniques to produce a rendering effect for a material.</p>
/// <p>An <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> instance should be shared among several <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> instances when possible.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#QEffect">QEffect</a></span> <span class="operator">*</span>effect <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#QEffect">QEffect</a></span>();
///
///   <span class="comment">// Create technique, render pass and shader</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span> <span class="operator">*</span>gl3Technique <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>gl3Pass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span> <span class="operator">*</span>glShader <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span>();
///
///   <span class="comment">// Set the shader on the render pass</span>
///   gl3Pass<span class="operator">-</span><span class="operator">&gt;</span>setShaderProgram(glShader);
///
///   <span class="comment">// Add the pass to the technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(gl3Pass);
///
///   <span class="comment">// Set the targeted GL version for the technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setApi(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>OpenGL);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMajorVersion(<span class="number">3</span>);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMinorVersion(<span class="number">1</span>);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setProfile(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>CoreProfile);
///
///   <span class="comment">// Add the technique to the effect</span>
///   effect<span class="operator">-</span><span class="operator">&gt;</span>addTechnique(gl3Technique);
///
/// </pre>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> defined on an Effect is overridden by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> (of the same name) defined in a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a>.</p></div>
#[repr(C)]
pub struct QEffect {
    _unused: u8,
}
impl QEffect {
    /// <p>Adds <i>parameter</i> to the effect. It sends a QPropertyNodeAddedChange to the backend. The <i>parameter</i> will be used to set a corresponding uniform value in the shader used by this effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QEffect::addParameter(Qt3DRender::QParameter* parameter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#addParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds <i>parameter</i> to the effect. It sends a QPropertyNodeAddedChange to the backend. The <i>parameter</i> will be used to set a corresponding uniform value in the shader used by this effect.</p></div>
    #[inline(always)]
    pub unsafe fn add_parameter(
        &self,
        parameter: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_addParameter(
            self as *const crate::QEffect as *mut crate::QEffect,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(parameter)
                .as_raw_ptr() as *mut crate::QParameter,
        )
    }

    /// <p>Adds a new technique <i>t</i> to the effect. It sends a QPropertyNodeAddedChange to the backend.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QEffect::addTechnique(Qt3DRender::QTechnique* t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#addTechnique">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a new technique <i>t</i> to the effect. It sends a QPropertyNodeAddedChange to the backend.</p></div>
    #[inline(always)]
    pub unsafe fn add_technique(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QTechnique>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_addTechnique(
            self as *const crate::QEffect as *mut crate::QEffect,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QTechnique>>::cast_into(t).as_raw_ptr()
                as *mut crate::QTechnique,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QEffect::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_metaObject(
                self as *const crate::QEffect,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QEffect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QEffect::QEffect(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#QEffect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QEffect.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_QEffect(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The base class for effects in a Qt 3D scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QEffect::QEffect()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The base class for effects in a Qt 3D scene.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> class combines a set of techniques and parameters used by those techniques to produce a rendering effect for a material.</p>
    /// <p>An <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> instance should be shared among several <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> instances when possible.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#QEffect">QEffect</a></span> <span class="operator">*</span>effect <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#QEffect">QEffect</a></span>();
    ///
    ///   <span class="comment">// Create technique, render pass and shader</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span> <span class="operator">*</span>gl3Technique <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>gl3Pass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span> <span class="operator">*</span>glShader <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span>();
    ///
    ///   <span class="comment">// Set the shader on the render pass</span>
    ///   gl3Pass<span class="operator">-</span><span class="operator">&gt;</span>setShaderProgram(glShader);
    ///
    ///   <span class="comment">// Add the pass to the technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(gl3Pass);
    ///
    ///   <span class="comment">// Set the targeted GL version for the technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setApi(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>OpenGL);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMajorVersion(<span class="number">3</span>);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMinorVersion(<span class="number">1</span>);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setProfile(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>CoreProfile);
    ///
    ///   <span class="comment">// Add the technique to the effect</span>
    ///   effect<span class="operator">-</span><span class="operator">&gt;</span>addTechnique(gl3Technique);
    ///
    /// </pre>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> defined on an Effect is overridden by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> (of the same name) defined in a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QEffect> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_QEffect1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns the list of parameters used by the effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> Qt3DRender::QEffect::parameters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#parameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of parameters used by the effect.</p></div>
    #[inline(always)]
    pub unsafe fn parameters(&self) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_parameters(
                self as *const crate::QEffect,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QEffect::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_qt_metacall(
            self as *const crate::QEffect as *mut crate::QEffect,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QEffect::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_qt_metacast(
            self as *const crate::QEffect as *mut crate::QEffect,
            arg1,
        )
    }

    /// <p>Removes a parameter <i>parameter</i> from the effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QEffect::removeParameter(Qt3DRender::QParameter* parameter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#removeParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a parameter <i>parameter</i> from the effect.</p></div>
    #[inline(always)]
    pub unsafe fn remove_parameter(
        &self,
        parameter: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_removeParameter(
            self as *const crate::QEffect as *mut crate::QEffect,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(parameter)
                .as_raw_ptr() as *mut crate::QParameter,
        )
    }

    /// <p>Removes a technique <i>t</i> from the effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QEffect::removeTechnique(Qt3DRender::QTechnique* t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#removeTechnique">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a technique <i>t</i> from the effect.</p></div>
    #[inline(always)]
    pub unsafe fn remove_technique(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QTechnique>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_removeTechnique(
            self as *const crate::QEffect as *mut crate::QEffect,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QTechnique>>::cast_into(t).as_raw_ptr()
                as *mut crate::QTechnique,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Returns the list of techniques used by the effect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*> Qt3DRender::QEffect::techniques() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#techniques">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of techniques used by the effect.</p></div>
    #[inline(always)]
    pub unsafe fn techniques(&self) -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_techniques(
                self as *const crate::QEffect,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QEffect::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QEffect::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Encapsulate an environment light object in a Qt 3D scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QEnvironmentLight```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate an environment light object in a Qt 3D scene.</p></div>
#[repr(C)]
pub struct QEnvironmentLight {
    _unused: u8,
}
impl QEnvironmentLight {
    /// <p>Holds the current environment irradiance map texture.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QEnvironmentLight::setIrradiance` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#irradiance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment irradiance map texture.</p>
    /// <p>By default, the environment irradiance texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>irradiance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIrradiance</b></span>(Qt3DRender::QAbstractTexture *<i>irradiance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>irradianceChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentIrradiance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_irradiance(&self) -> ::qt_core::Receiver<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setIrradiance(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>Holds the current environment specular map texture.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QEnvironmentLight::setSpecular` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#specular-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment specular map texture.</p>
    /// <p>By default, the environment specular texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>specular</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSpecular</b></span>(Qt3DRender::QAbstractTexture *<i>specular</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>specularChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentSpecular</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_specular(&self) -> ::qt_core::Receiver<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setSpecular(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>Holds the current environment irradiance map texture.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QEnvironmentLight::irradianceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#irradiance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment irradiance map texture.</p>
    /// <p>By default, the environment irradiance texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>irradiance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIrradiance</b></span>(Qt3DRender::QAbstractTexture *<i>irradiance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>irradianceChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentIrradiance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn irradiance_changed(&self) -> ::qt_core::Signal<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2irradianceChanged(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>Holds the current environment specular map texture.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QEnvironmentLight::specularChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#specular-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment specular map texture.</p>
    /// <p>By default, the environment specular texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>specular</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSpecular</b></span>(Qt3DRender::QAbstractTexture *<i>specular</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>specularChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentSpecular</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn specular_changed(&self) -> ::qt_core::Signal<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2specularChanged(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>Holds the current environment irradiance map texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* Qt3DRender::QEnvironmentLight::irradiance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#irradiance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment irradiance map texture.</p>
    /// <p>By default, the environment irradiance texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>irradiance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIrradiance</b></span>(Qt3DRender::QAbstractTexture *<i>irradiance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>irradianceChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentIrradiance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn irradiance(&self) -> ::qt_core::QPtr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_irradiance(
                self as *const crate::QEnvironmentLight,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QEnvironmentLight::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_metaObject(
                self as *const crate::QEnvironmentLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QEnvironmentLight.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QEnvironmentLight::QEnvironmentLight(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#QEnvironmentLight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QEnvironmentLight.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_QEnvironmentLight(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulate an environment light object in a Qt 3D scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QEnvironmentLight::QEnvironmentLight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate an environment light object in a Qt 3D scene.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_QEnvironmentLight1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QEnvironmentLight::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_qt_metacall(
            self as *const crate::QEnvironmentLight as *mut crate::QEnvironmentLight,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QEnvironmentLight::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_qt_metacast(
            self as *const crate::QEnvironmentLight as *mut crate::QEnvironmentLight,
            arg1,
        )
    }

    /// <p>Holds the current environment irradiance map texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QEnvironmentLight::setIrradiance(Qt3DRender::QAbstractTexture* irradiance)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#irradiance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment irradiance map texture.</p>
    /// <p>By default, the environment irradiance texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>irradiance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIrradiance</b></span>(Qt3DRender::QAbstractTexture *<i>irradiance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>irradianceChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentIrradiance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_irradiance(
        &self,
        irradiance: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_setIrradiance(
            self as *const crate::QEnvironmentLight as *mut crate::QEnvironmentLight,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(irradiance)
                .as_raw_ptr() as *mut crate::QAbstractTexture,
        )
    }

    /// <p>Holds the current environment specular map texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QEnvironmentLight::setSpecular(Qt3DRender::QAbstractTexture* specular)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#specular-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment specular map texture.</p>
    /// <p>By default, the environment specular texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>specular</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSpecular</b></span>(Qt3DRender::QAbstractTexture *<i>specular</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>specularChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentSpecular</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_specular(
        &self,
        specular: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_setSpecular(
            self as *const crate::QEnvironmentLight as *mut crate::QEnvironmentLight,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(specular)
                .as_raw_ptr() as *mut crate::QAbstractTexture,
        )
    }

    /// <p>Holds the current environment specular map texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* Qt3DRender::QEnvironmentLight::specular() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#specular-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current environment specular map texture.</p>
    /// <p>By default, the environment specular texture is null.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractTexture *</td><td class="memItemRight bottomAlign"><span class="name"><b>specular</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSpecular</b></span>(Qt3DRender::QAbstractTexture *<i>specular</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>specularChanged</b></span>(Qt3DRender::QAbstractTexture *<i>environmentSpecular</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn specular(&self) -> ::qt_core::QPtr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_specular(
                self as *const crate::QEnvironmentLight,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QEnvironmentLight::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QEnvironmentLight::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> class provides storage for filter keys and their values.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QFilterKey```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> class provides storage for filter keys and their values.</p>
/// <p>Filter keys are used by <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> to specify at which stage of rendering the technique or the render pass is used.</p></div>
#[repr(C)]
pub struct QFilterKey {
    _unused: u8,
}
impl QFilterKey {
    /// <p>Holds the value of the filter key.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QFilterKey::setValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the value of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_value(&self) -> ::qt_core::Receiver<(*const ::qt_core::QVariant,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setValue(QVariant const &)\0"),
            )
        }
    }

    /// <p>Holds the name of the filter key.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QFilterKey::setName` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>customType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_name(&self) -> ::qt_core::Receiver<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setName(QString const &)\0"),
            )
        }
    }

    /// <p>Holds the name of the filter key.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QFilterKey::nameChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>customType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn name_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2nameChanged(QString const &)\0"),
            )
        }
    }

    /// <p>Holds the value of the filter key.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QFilterKey::valueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the value of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn value_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QVariant,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2valueChanged(QVariant const &)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QFilterKey::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_metaObject(
                self as *const crate::QFilterKey,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the name of the filter key.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString Qt3DRender::QFilterKey::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>customType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_name(
                self as *const crate::QFilterKey,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Default constructs an instance of QFilterKey.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFilterKey::QFilterKey(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#QFilterKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QFilterKey.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_QFilterKey(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> class provides storage for filter keys and their values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFilterKey::QFilterKey()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> class provides storage for filter keys and their values.</p>
    /// <p>Filter keys are used by <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> to specify at which stage of rendering the technique or the render pass is used.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QFilterKey> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_QFilterKey1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QFilterKey::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_qt_metacall(
            self as *const crate::QFilterKey as *mut crate::QFilterKey,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QFilterKey::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_qt_metacast(
            self as *const crate::QFilterKey as *mut crate::QFilterKey,
            arg1,
        )
    }

    /// <p>Holds the name of the filter key.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QFilterKey::setName(const QString& customType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>customType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_name(
        &self,
        custom_type: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_setName(
            self as *const crate::QFilterKey as *mut crate::QFilterKey,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(custom_type)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the value of the filter key.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QFilterKey::setValue(const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the value of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_value(
        &self,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_setValue(
            self as *const crate::QFilterKey as *mut crate::QFilterKey,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFilterKey::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFilterKey::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the value of the filter key.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant Qt3DRender::QFilterKey::value() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the value of the filter key.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn value(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_value(
                self as *const crate::QFilterKey,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A base class for changes in the <a href="http://doc.qt.io/qt-5/qml-qt3d-render-framegraphnode.html">FrameGraphNode</a>.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QFrameGraphNodeCreatedChangeBase```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnodecreatedchangebase.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A base class for changes in the <a href="http://doc.qt.io/qt-5/qml-qt3d-render-framegraphnode.html">FrameGraphNode</a>.</p></div>
#[repr(C)]
pub struct QFrameGraphNodeCreatedChangeBase {
    _unused: u8,
}
impl QFrameGraphNodeCreatedChangeBase {
    /// <p>Default constructs an instance of QFrameGraphNodeCreatedChangeBase.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFrameGraphNodeCreatedChangeBase::QFrameGraphNodeCreatedChangeBase(const Qt3DRender::QFrameGraphNode* node)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnodecreatedchangebase.html#QFrameGraphNodeCreatedChangeBase">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QFrameGraphNodeCreatedChangeBase.</p></div>
    #[inline(always)]
    pub unsafe fn new(
        node: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFrameGraphNode>>,
    ) -> ::cpp_core::CppBox<crate::QFrameGraphNodeCreatedChangeBase> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNodeCreatedChangeBase_QFrameGraphNodeCreatedChangeBase(::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFrameGraphNode>>::cast_into(node).as_raw_ptr())
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNodeId Qt3DRender::QFrameGraphNodeCreatedChangeBase::parentFrameGraphNodeId() const```</span>.
    #[inline(always)]
    pub unsafe fn parent_frame_graph_node_id(&self) -> ::cpp_core::CppBox<::qt_3d_core::QNodeId> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNodeCreatedChangeBase_parentFrameGraphNodeId(self as *const crate::QFrameGraphNodeCreatedChangeBase)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_front_face {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QFrontFace```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QFrontFace::WindingDirection```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct WindingDirection(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for WindingDirection {
        fn from(value: ::std::os::raw::c_int) -> Self {
            WindingDirection(value)
        }
    }

    impl From<WindingDirection> for ::std::os::raw::c_int {
        fn from(value: WindingDirection) -> Self {
            value.0
        }
    }

    impl WindingDirection {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl WindingDirection {
        /// C++ enum variant: <span style='color: green;'>```ClockWise = 2304```</span>
        #[allow(non_upper_case_globals)]
        pub const ClockWise: crate::q_front_face::WindingDirection =
            crate::q_front_face::WindingDirection(2304);
        /// C++ enum variant: <span style='color: green;'>```CounterClockWise = 2305```</span>
        #[allow(non_upper_case_globals)]
        pub const CounterClockWise: crate::q_front_face::WindingDirection =
            crate::q_front_face::WindingDirection(2305);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">QFrontFace</a> class defines front and back facing polygons.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QFrontFace```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">QFrontFace</a> class defines front and back facing polygons.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">Qt3DRender::QFrontFace</a> sets the winding direction of the front facing polygons.</p></div>
#[repr(C)]
pub struct QFrontFace {
    _unused: u8,
}
impl QFrontFace {
    /// <p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QFrontFace::setDirection` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WindingDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_direction(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_front_face::WindingDirection,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setDirection(Qt3DRender::QFrontFace::WindingDirection)\0",
                ),
            )
        }
    }

    /// <p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QFrontFace::directionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WindingDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn direction_changed(&self) -> ::qt_core::Signal<(crate::q_front_face::WindingDirection,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2directionChanged(Qt3DRender::QFrontFace::WindingDirection)\0",
                ),
            )
        }
    }

    /// <p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrontFace::WindingDirection Qt3DRender::QFrontFace::direction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WindingDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn direction(&self) -> crate::q_front_face::WindingDirection {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_direction(
            self as *const crate::QFrontFace,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QFrontFace::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_metaObject(
                self as *const crate::QFrontFace,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QFrontFace.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFrontFace::QFrontFace(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html#QFrontFace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QFrontFace.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QFrontFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_QFrontFace(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">QFrontFace</a> class defines front and back facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFrontFace::QFrontFace()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">QFrontFace</a> class defines front and back facing polygons.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html">Qt3DRender::QFrontFace</a> sets the winding direction of the front facing polygons.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QFrontFace> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_QFrontFace1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QFrontFace::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_qt_metacall(
            self as *const crate::QFrontFace as *mut crate::QFrontFace,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QFrontFace::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_qt_metacast(
            self as *const crate::QFrontFace as *mut crate::QFrontFace,
            arg1,
        )
    }

    /// <p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QFrontFace::setDirection(Qt3DRender::QFrontFace::WindingDirection direction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrontface.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the winding direction of the front facing polygons. Default is Clockwise.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WindingDirection </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(WindingDirection <i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_direction(&self, direction: crate::q_front_face::WindingDirection) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_setDirection(
            self as *const crate::QFrontFace as *mut crate::QFrontFace,
            direction,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFrontFace::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFrontFace::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Enable frustum culling for the FrameGraph</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QFrustumCulling```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable frustum culling for the FrameGraph</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">QFrustumCulling</a> class enables frustum culling of the drawable entities based on the camera view and <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">QGeometry</a> bounds of the entities. If <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">QFrustumCulling</a> is present in the FrameGraph, only the entities whose <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">QGeometry</a> bounds intersect with the camera frustum, i.e. the view of the camera, are drawn. If <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">QFrustumCulling</a> is not present, all drawable entities will be drawn. The camera is selected by a <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a> frame graph node in the current hierarchy. Frustum culling can save a lot of GPU processing time when the rendered scene is complex.</p></div>
#[repr(C)]
pub struct QFrustumCulling {
    _unused: u8,
}
impl QFrustumCulling {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QFrustumCulling::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_metaObject(
                self as *const crate::QFrustumCulling,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>The constructor creates an instance with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFrustumCulling::QFrustumCulling(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html#QFrustumCulling">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates an instance with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QFrustumCulling> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_QFrustumCulling(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Enable frustum culling for the FrameGraph</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QFrustumCulling::QFrustumCulling()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable frustum culling for the FrameGraph</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">QFrustumCulling</a> class enables frustum culling of the drawable entities based on the camera view and <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">QGeometry</a> bounds of the entities. If <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">QFrustumCulling</a> is present in the FrameGraph, only the entities whose <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">QGeometry</a> bounds intersect with the camera frustum, i.e. the view of the camera, are drawn. If <a href="http://doc.qt.io/qt-5/qt3drender-qfrustumculling.html">QFrustumCulling</a> is not present, all drawable entities will be drawn. The camera is selected by a <a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a> frame graph node in the current hierarchy. Frustum culling can save a lot of GPU processing time when the rendered scene is complex.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QFrustumCulling> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_QFrustumCulling1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QFrustumCulling::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_qt_metacall(
            self as *const crate::QFrustumCulling as *mut crate::QFrustumCulling,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QFrustumCulling::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_qt_metacast(
            self as *const crate::QFrustumCulling as *mut crate::QFrustumCulling,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFrustumCulling::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QFrustumCulling::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Encapsulates geometry</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QGeometry```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates geometry</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">Qt3DRender::QGeometry</a> class is used to group a list of <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">Qt3DRender::QAttribute</a> objects together to form a geometric shape Qt3D is able to render using <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">Qt3DRender::QGeometryRenderer</a>. Special attribute can be set in order to calculate bounding volume of the shape.</p></div>
#[repr(C)]
pub struct QGeometry {
    _unused: u8,
}
impl QGeometry {
    /// <p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometry::setBoundingVolumePositionAttribute` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#boundingVolumePositionAttribute-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    /// <p>If unspecified, the system will look for the attribute using the name returned by <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName-prop">QAttribute::defaultPositionAttributeName</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAttribute *</td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttribute</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBoundingVolumePositionAttribute</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttributeChanged</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">Qt3DRender::QAttribute</a>.</p></div>
    #[inline(always)]
    pub fn slot_set_bounding_volume_position_attribute(
        &self,
    ) -> ::qt_core::Receiver<(*mut crate::QAttribute,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setBoundingVolumePositionAttribute(Qt3DRender::QAttribute *)\0",
                ),
            )
        }
    }

    /// <p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometry::boundingVolumePositionAttributeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#boundingVolumePositionAttribute-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    /// <p>If unspecified, the system will look for the attribute using the name returned by <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName-prop">QAttribute::defaultPositionAttributeName</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAttribute *</td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttribute</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBoundingVolumePositionAttribute</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttributeChanged</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">Qt3DRender::QAttribute</a>.</p></div>
    #[inline(always)]
    pub fn bounding_volume_position_attribute_changed(
        &self,
    ) -> ::qt_core::Signal<(*mut crate::QAttribute,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2boundingVolumePositionAttributeChanged(Qt3DRender::QAttribute *)\0",
                ),
            )
        }
    }

    /// <p>Adds an <i>attribute</i> to this geometry.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QGeometry::addAttribute(Qt3DRender::QAttribute* attribute)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#addAttribute">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds an <i>attribute</i> to this geometry.</p></div>
    #[inline(always)]
    pub unsafe fn add_attribute(
        &self,
        attribute: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAttribute>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_addAttribute(
            self as *const crate::QGeometry as *mut crate::QGeometry,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAttribute>>::cast_into(attribute)
                .as_raw_ptr() as *mut crate::QAttribute,
        )
    }

    /// <p>Returns the list of attributes in this geometry.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*> Qt3DRender::QGeometry::attributes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#attributes">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of attributes in this geometry.</p></div>
    #[inline(always)]
    pub unsafe fn attributes(&self) -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_attributes(
                self as *const crate::QGeometry,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* Qt3DRender::QGeometry::boundingVolumePositionAttribute() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#boundingVolumePositionAttribute-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    /// <p>If unspecified, the system will look for the attribute using the name returned by <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName-prop">QAttribute::defaultPositionAttributeName</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAttribute *</td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttribute</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBoundingVolumePositionAttribute</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttributeChanged</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">Qt3DRender::QAttribute</a>.</p></div>
    #[inline(always)]
    pub unsafe fn bounding_volume_position_attribute(&self) -> ::qt_core::QPtr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_boundingVolumePositionAttribute(
                self as *const crate::QGeometry,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Holds the vertex with the highest x, y, z position values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QGeometry::maxExtent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#maxExtent-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex with the highest x, y, z position values.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>maxExtent</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maxExtentChanged</b></span>(const QVector3D &amp;<i>maxExtent</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn max_extent(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_maxExtent(
                self as *const crate::QGeometry,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the vertex with the highest x, y, z position values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QGeometry::maxExtentChanged(const QVector3D& maxExtent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#maxExtent-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex with the highest x, y, z position values.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>maxExtent</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>maxExtentChanged</b></span>(const QVector3D &amp;<i>maxExtent</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn max_extent_changed(
        &self,
        max_extent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_maxExtentChanged(
            self as *const crate::QGeometry as *mut crate::QGeometry,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(max_extent)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QGeometry::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_metaObject(
                self as *const crate::QGeometry,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds the vertex with the lowest x, y, z position values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QGeometry::minExtent() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#minExtent-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex with the lowest x, y, z position values.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>minExtent</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minExtentChanged</b></span>(const QVector3D &amp;<i>minExtent</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn min_extent(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_minExtent(
                self as *const crate::QGeometry,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the vertex with the lowest x, y, z position values.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QGeometry::minExtentChanged(const QVector3D& minExtent)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#minExtent-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex with the lowest x, y, z position values.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>minExtent</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minExtentChanged</b></span>(const QVector3D &amp;<i>minExtent</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn min_extent_changed(
        &self,
        min_extent: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_minExtentChanged(
            self as *const crate::QGeometry as *mut crate::QGeometry,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(min_extent)
                .as_raw_ptr(),
        )
    }

    /// <p>Default constructs an instance of QGeometry.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QGeometry::QGeometry(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#QGeometry">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QGeometry.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_QGeometry(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulates geometry</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QGeometry::QGeometry()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates geometry</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">Qt3DRender::QGeometry</a> class is used to group a list of <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">Qt3DRender::QAttribute</a> objects together to form a geometric shape Qt3D is able to render using <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">Qt3DRender::QGeometryRenderer</a>. Special attribute can be set in order to calculate bounding volume of the shape.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QGeometry> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_QGeometry1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QGeometry::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_qt_metacall(
            self as *const crate::QGeometry as *mut crate::QGeometry,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QGeometry::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_qt_metacast(
            self as *const crate::QGeometry as *mut crate::QGeometry,
            arg1,
        )
    }

    /// <p>Removes the given <i>attribute</i> from this geometry.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QGeometry::removeAttribute(Qt3DRender::QAttribute* attribute)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#removeAttribute">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the given <i>attribute</i> from this geometry.</p></div>
    #[inline(always)]
    pub unsafe fn remove_attribute(
        &self,
        attribute: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAttribute>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_removeAttribute(
            self as *const crate::QGeometry as *mut crate::QGeometry,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAttribute>>::cast_into(attribute)
                .as_raw_ptr() as *mut crate::QAttribute,
        )
    }

    /// <p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometry::setBoundingVolumePositionAttribute(Qt3DRender::QAttribute* boundingVolumePositionAttribute)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html#boundingVolumePositionAttribute-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the attribute used to compute the bounding volume. The bounding volume is used internally for picking and view frustum culling.</p>
    /// <p>If unspecified, the system will look for the attribute using the name returned by <a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html#defaultPositionAttributeName-prop">QAttribute::defaultPositionAttributeName</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QAttribute *</td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttribute</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBoundingVolumePositionAttribute</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>boundingVolumePositionAttributeChanged</b></span>(QAttribute *<i>boundingVolumePositionAttribute</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qattribute.html">Qt3DRender::QAttribute</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_bounding_volume_position_attribute(
        &self,
        bounding_volume_position_attribute: impl ::cpp_core::CastInto<
            ::cpp_core::Ptr<crate::QAttribute>,
        >,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_setBoundingVolumePositionAttribute(
            self as *const crate::QGeometry as *mut crate::QGeometry,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAttribute>>::cast_into(
                bounding_volume_position_attribute,
            )
            .as_raw_ptr() as *mut crate::QAttribute,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QGeometry::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QGeometry::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// C++ class: <span style='color: green;'>```Qt3DRender::QGeometryFactory```</span>.
#[repr(C)]
pub struct QGeometryFactory {
    _unused: u8,
}
impl QGeometryFactory {
    /// <p>Returns the generated geometry.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual Qt3DRender::QGeometry* Qt3DRender::QGeometryFactory::operator()()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryfactory.html#operator-28-29">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the generated geometry.</p></div>
    #[inline(always)]
    pub unsafe fn call(&self) -> ::qt_core::QPtr<crate::QGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryFactory_operator__(
                self as *const crate::QGeometryFactory as *mut crate::QGeometryFactory,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

pub mod q_geometry_renderer {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QGeometryRenderer```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QGeometryRenderer::PrimitiveType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PrimitiveType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PrimitiveType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PrimitiveType(value)
        }
    }

    impl From<PrimitiveType> for ::std::os::raw::c_int {
        fn from(value: PrimitiveType) -> Self {
            value.0
        }
    }

    impl PrimitiveType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PrimitiveType {
        /// C++ enum variant: <span style='color: green;'>```Points = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Points: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(0);
        /// C++ enum variant: <span style='color: green;'>```Lines = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Lines: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(1);
        /// C++ enum variant: <span style='color: green;'>```LineLoop = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const LineLoop: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(2);
        /// C++ enum variant: <span style='color: green;'>```LineStrip = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const LineStrip: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(3);
        /// C++ enum variant: <span style='color: green;'>```Triangles = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Triangles: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(4);
        /// C++ enum variant: <span style='color: green;'>```TriangleStrip = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const TriangleStrip: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(5);
        /// C++ enum variant: <span style='color: green;'>```TriangleFan = 6```</span>
        #[allow(non_upper_case_globals)]
        pub const TriangleFan: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(6);
        /// C++ enum variant: <span style='color: green;'>```LinesAdjacency = 10```</span>
        #[allow(non_upper_case_globals)]
        pub const LinesAdjacency: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(10);
        /// C++ enum variant: <span style='color: green;'>```TrianglesAdjacency = 12```</span>
        #[allow(non_upper_case_globals)]
        pub const TrianglesAdjacency: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(12);
        /// C++ enum variant: <span style='color: green;'>```LineStripAdjacency = 11```</span>
        #[allow(non_upper_case_globals)]
        pub const LineStripAdjacency: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(11);
        /// C++ enum variant: <span style='color: green;'>```TriangleStripAdjacency = 13```</span>
        #[allow(non_upper_case_globals)]
        pub const TriangleStripAdjacency: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(13);
        /// C++ enum variant: <span style='color: green;'>```Patches = 14```</span>
        #[allow(non_upper_case_globals)]
        pub const Patches: crate::q_geometry_renderer::PrimitiveType =
            crate::q_geometry_renderer::PrimitiveType(14);
    }
}
/// <p>Encapsulates geometry rendering</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QGeometryRenderer```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates geometry rendering</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">Qt3DRender::QGeometryRenderer</a> holds all the information necessary to draw a <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">Qt3DRender::QGeometry</a>. A <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">QGeometry</a> holds the coordinates of the geometry data - <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a> specifies how to interpret that data.</p></div>
#[repr(C)]
pub struct QGeometryRenderer {
    _unused: u8,
}
impl QGeometryRenderer {
    /// <p>Holds the instance count.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setInstanceCount` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#instanceCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the instance count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setInstanceCount</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCountChanged</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_instance_count(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setInstanceCount(int)\0"),
            )
        }
    }

    /// <p>Holds the primitive count.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setVertexCount` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#vertexCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexCount</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCountChanged</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_vertex_count(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setVertexCount(int)\0"),
            )
        }
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setIndexOffset` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#indexOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIndexOffset</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffsetChanged</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_index_offset(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setIndexOffset(int)\0"),
            )
        }
    }

    /// <p>Holds the base instance.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setFirstInstance` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstInstance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base instance.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstInstance</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstanceChanged</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_first_instance(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFirstInstance(int)\0"),
            )
        }
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setFirstVertex` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstVertex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstVertex</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertexChanged</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_first_vertex(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFirstVertex(int)\0"),
            )
        }
    }

    /// <p>Holds the restart index.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setRestartIndexValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#restartIndexValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the restart index.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRestartIndexValue</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValueChanged</b></span>(int <i>restartIndexValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_restart_index_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setRestartIndexValue(int)\0"),
            )
        }
    }

    /// <p>Holds vertices per patch.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setVerticesPerPatch` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#verticesPerPatch-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds vertices per patch.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatch</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVerticesPerPatch</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatchChanged</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_vertices_per_patch(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setVerticesPerPatch(int)\0"),
            )
        }
    }

    /// <p>Holds the primitive restart flag.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setPrimitiveRestartEnabled` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveRestartEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive restart flag.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabled</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveRestartEnabled</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabledChanged</b></span>(bool <i>primitiveRestartEnabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_primitive_restart_enabled(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setPrimitiveRestartEnabled(bool)\0",
                ),
            )
        }
    }

    /// <p>Holds the geometry.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setGeometry` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#geometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QGeometry *</td><td class="memItemRight bottomAlign"><span class="name"><b>geometry</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometry</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryChanged</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_geometry(&self) -> ::qt_core::Receiver<(*mut crate::QGeometry,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setGeometry(Qt3DRender::QGeometry *)\0",
                ),
            )
        }
    }

    /// <p>Holds the primitive type.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGeometryRenderer::setPrimitiveType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PrimitiveType </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveType</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveTypeChanged</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_primitive_type(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_geometry_renderer::PrimitiveType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setPrimitiveType(Qt3DRender::QGeometryRenderer::PrimitiveType)\0",
                ),
            )
        }
    }

    /// <p>Holds the instance count.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::instanceCountChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#instanceCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the instance count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setInstanceCount</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCountChanged</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn instance_count_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2instanceCountChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the primitive count.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::vertexCountChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#vertexCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexCount</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCountChanged</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn vertex_count_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2vertexCountChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::indexOffsetChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#indexOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIndexOffset</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffsetChanged</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn index_offset_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2indexOffsetChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the base instance.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::firstInstanceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstInstance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base instance.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstInstance</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstanceChanged</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn first_instance_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2firstInstanceChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::firstVertexChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstVertex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstVertex</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertexChanged</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn first_vertex_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2firstVertexChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the restart index.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::restartIndexValueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#restartIndexValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the restart index.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRestartIndexValue</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValueChanged</b></span>(int <i>restartIndexValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn restart_index_value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2restartIndexValueChanged(int)\0",
                ),
            )
        }
    }

    /// <p>Holds vertices per patch.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::verticesPerPatchChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#verticesPerPatch-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds vertices per patch.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatch</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVerticesPerPatch</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatchChanged</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn vertices_per_patch_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2verticesPerPatchChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the primitive restart flag.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::primitiveRestartEnabledChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveRestartEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive restart flag.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabled</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveRestartEnabled</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabledChanged</b></span>(bool <i>primitiveRestartEnabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn primitive_restart_enabled_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2primitiveRestartEnabledChanged(bool)\0",
                ),
            )
        }
    }

    /// <p>Holds the geometry.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::geometryChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#geometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QGeometry *</td><td class="memItemRight bottomAlign"><span class="name"><b>geometry</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometry</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryChanged</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn geometry_changed(&self) -> ::qt_core::Signal<(*mut crate::QGeometry,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2geometryChanged(Qt3DRender::QGeometry *)\0",
                ),
            )
        }
    }

    /// <p>Holds the primitive type.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGeometryRenderer::primitiveTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PrimitiveType </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveType</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveTypeChanged</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn primitive_type_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_geometry_renderer::PrimitiveType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2primitiveTypeChanged(Qt3DRender::QGeometryRenderer::PrimitiveType)\0",
                ),
            )
        }
    }

    /// <p>Holds the base instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::firstInstance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstInstance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base instance.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstInstance</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstanceChanged</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn first_instance(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_firstInstance(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::firstVertex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstVertex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstVertex</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertexChanged</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn first_vertex(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_firstVertex(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// <p>Holds the geometry.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometry* Qt3DRender::QGeometryRenderer::geometry() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#geometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QGeometry *</td><td class="memItemRight bottomAlign"><span class="name"><b>geometry</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometry</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryChanged</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn geometry(&self) -> ::qt_core::QPtr<crate::QGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_geometry(
                self as *const crate::QGeometryRenderer,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Holds the byte offset into the index buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::indexBufferByteOffset() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#indexBufferByteOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte offset into the index buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>indexBufferByteOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIndexBufferByteOffset</b></span>(int <i>offset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>indexBufferByteOffsetChanged</b></span>(int <i>offset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn index_buffer_byte_offset(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_indexBufferByteOffset(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// <p>Holds the byte offset into the index buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QGeometryRenderer::indexBufferByteOffsetChanged(int offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#indexBufferByteOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte offset into the index buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>indexBufferByteOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIndexBufferByteOffset</b></span>(int <i>offset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>indexBufferByteOffsetChanged</b></span>(int <i>offset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn index_buffer_byte_offset_changed(&self, offset: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_indexBufferByteOffsetChanged(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            offset,
        )
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::indexOffset() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#indexOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIndexOffset</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffsetChanged</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn index_offset(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_indexOffset(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// <p>Holds the instance count.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::instanceCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#instanceCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the instance count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setInstanceCount</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCountChanged</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn instance_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_instanceCount(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QGeometryRenderer::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_metaObject(
                self as *const crate::QGeometryRenderer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QGeometryRenderer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QGeometryRenderer::QGeometryRenderer(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#QGeometryRenderer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QGeometryRenderer.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_QGeometryRenderer(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulates geometry rendering</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QGeometryRenderer::QGeometryRenderer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates geometry rendering</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">Qt3DRender::QGeometryRenderer</a> holds all the information necessary to draw a <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">Qt3DRender::QGeometry</a>. A <a href="http://doc.qt.io/qt-5/qt3drender-qgeometry.html">QGeometry</a> holds the coordinates of the geometry data - <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a> specifies how to interpret that data.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_QGeometryRenderer1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Holds the primitive restart flag.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QGeometryRenderer::primitiveRestartEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveRestartEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive restart flag.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabled</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveRestartEnabled</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabledChanged</b></span>(bool <i>primitiveRestartEnabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn primitive_restart_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_primitiveRestartEnabled(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// <p>Holds the primitive type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer::PrimitiveType Qt3DRender::QGeometryRenderer::primitiveType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PrimitiveType </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveType</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveTypeChanged</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn primitive_type(&self) -> crate::q_geometry_renderer::PrimitiveType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_primitiveType(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QGeometryRenderer::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_qt_metacall(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QGeometryRenderer::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_qt_metacast(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            arg1,
        )
    }

    /// <p>Holds the restart index.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::restartIndexValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#restartIndexValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the restart index.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRestartIndexValue</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValueChanged</b></span>(int <i>restartIndexValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn restart_index_value(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_restartIndexValue(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// <p>Holds the base instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setFirstInstance(int firstInstance)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstInstance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base instance.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstance</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstInstance</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstInstanceChanged</b></span>(int <i>firstInstance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_first_instance(&self, first_instance: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setFirstInstance(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            first_instance,
        )
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setFirstVertex(int firstVertex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#firstVertex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFirstVertex</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>firstVertexChanged</b></span>(int <i>firstVertex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_first_vertex(&self, first_vertex: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setFirstVertex(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            first_vertex,
        )
    }

    /// <p>Holds the geometry.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setGeometry(Qt3DRender::QGeometry* geometry)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#geometry-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QGeometry *</td><td class="memItemRight bottomAlign"><span class="name"><b>geometry</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometry</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryChanged</b></span>(QGeometry *<i>geometry</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_geometry(
        &self,
        geometry: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QGeometry>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setGeometry(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QGeometry>>::cast_into(geometry)
                .as_raw_ptr() as *mut crate::QGeometry,
        )
    }

    /// <p>Holds the byte offset into the index buffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QGeometryRenderer::setIndexBufferByteOffset(int offset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#indexBufferByteOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the byte offset into the index buffer.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>indexBufferByteOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIndexBufferByteOffset</b></span>(int <i>offset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>indexBufferByteOffsetChanged</b></span>(int <i>offset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_index_buffer_byte_offset(&self, offset: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setIndexBufferByteOffset(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            offset,
        )
    }

    /// <p>Holds the base vertex.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setIndexOffset(int indexOffset)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#indexOffset-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the base vertex.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffset</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setIndexOffset</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>indexOffsetChanged</b></span>(int <i>indexOffset</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_index_offset(&self, index_offset: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setIndexOffset(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            index_offset,
        )
    }

    /// <p>Holds the instance count.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setInstanceCount(int instanceCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#instanceCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the instance count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setInstanceCount</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>instanceCountChanged</b></span>(int <i>instanceCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_instance_count(&self, instance_count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setInstanceCount(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            instance_count,
        )
    }

    /// <p>Holds the primitive restart flag.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setPrimitiveRestartEnabled(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveRestartEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive restart flag.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabled</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveRestartEnabled</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveRestartEnabledChanged</b></span>(bool <i>primitiveRestartEnabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_primitive_restart_enabled(&self, enabled: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setPrimitiveRestartEnabled(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            enabled,
        )
    }

    /// <p>Holds the primitive type.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setPrimitiveType(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#primitiveType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive type.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PrimitiveType </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPrimitiveType</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>primitiveTypeChanged</b></span>(PrimitiveType <i>primitiveType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_primitive_type(
        &self,
        primitive_type: crate::q_geometry_renderer::PrimitiveType,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setPrimitiveType(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            primitive_type,
        )
    }

    /// <p>Holds the restart index.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setRestartIndexValue(int index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#restartIndexValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the restart index.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRestartIndexValue</b></span>(int <i>index</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>restartIndexValueChanged</b></span>(int <i>restartIndexValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_restart_index_value(&self, index: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setRestartIndexValue(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            index,
        )
    }

    /// <p>Holds the primitive count.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setVertexCount(int vertexCount)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#vertexCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexCount</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCountChanged</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_vertex_count(&self, vertex_count: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setVertexCount(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            vertex_count,
        )
    }

    /// <p>Holds vertices per patch.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGeometryRenderer::setVerticesPerPatch(int verticesPerPatch)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#verticesPerPatch-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds vertices per patch.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatch</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVerticesPerPatch</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatchChanged</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_vertices_per_patch(&self, vertices_per_patch: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_setVerticesPerPatch(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
            vertices_per_patch,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QGeometryRenderer::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QGeometryRenderer::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the primitive count.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::vertexCount() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#vertexCount-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the primitive count.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCount</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexCount</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexCountChanged</b></span>(int <i>vertexCount</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertex_count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_vertexCount(
            self as *const crate::QGeometryRenderer,
        )
    }

    /// <p>Holds vertices per patch.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGeometryRenderer::verticesPerPatch() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html#verticesPerPatch-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds vertices per patch.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatch</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVerticesPerPatch</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>verticesPerPatchChanged</b></span>(int <i>verticesPerPatch</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertices_per_patch(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_verticesPerPatch(
            self as *const crate::QGeometryRenderer,
        )
    }
}

pub mod q_graphics_api_filter {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::Api```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Api(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Api {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Api(value)
        }
    }

    impl From<Api> for ::std::os::raw::c_int {
        fn from(value: Api) -> Self {
            value.0
        }
    }

    impl Api {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Api {
        /// C++ enum variant: <span style='color: green;'>```OpenGLES = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const OpenGLES: crate::q_graphics_api_filter::Api =
            crate::q_graphics_api_filter::Api(2);
        /// C++ enum variant: <span style='color: green;'>```OpenGL = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const OpenGL: crate::q_graphics_api_filter::Api = crate::q_graphics_api_filter::Api(1);
        /// C++ enum variant: <span style='color: green;'>```Vulkan = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const Vulkan: crate::q_graphics_api_filter::Api = crate::q_graphics_api_filter::Api(3);
        /// C++ enum variant: <span style='color: green;'>```DirectX = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const DirectX: crate::q_graphics_api_filter::Api = crate::q_graphics_api_filter::Api(4);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::OpenGLProfile```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct OpenGLProfile(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for OpenGLProfile {
        fn from(value: ::std::os::raw::c_int) -> Self {
            OpenGLProfile(value)
        }
    }

    impl From<OpenGLProfile> for ::std::os::raw::c_int {
        fn from(value: OpenGLProfile) -> Self {
            value.0
        }
    }

    impl OpenGLProfile {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl OpenGLProfile {
        /// C++ enum variant: <span style='color: green;'>```NoProfile = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoProfile: crate::q_graphics_api_filter::OpenGLProfile =
            crate::q_graphics_api_filter::OpenGLProfile(0);
        /// C++ enum variant: <span style='color: green;'>```CoreProfile = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const CoreProfile: crate::q_graphics_api_filter::OpenGLProfile =
            crate::q_graphics_api_filter::OpenGLProfile(1);
        /// C++ enum variant: <span style='color: green;'>```CompatibilityProfile = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const CompatibilityProfile: crate::q_graphics_api_filter::OpenGLProfile =
            crate::q_graphics_api_filter::OpenGLProfile(2);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a> class identifies the API required for the attached <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a> class identifies the API required for the attached <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></p></div>
#[repr(C)]
pub struct QGraphicsApiFilter {
    _unused: u8,
}
impl QGraphicsApiFilter {
    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGraphicsApiFilter::setApi` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#api-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Api </td><td class="memItemRight bottomAlign"><span class="name"><b>api</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setApi</b></span>(Api <i>api</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>apiChanged</b></span>(Qt3DRender::QGraphicsApiFilter::Api <i>api</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_api(&self) -> ::qt_core::Receiver<(crate::q_graphics_api_filter::Api,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setApi(Qt3DRender::QGraphicsApiFilter::Api)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGraphicsApiFilter::setProfile` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#profile-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> OpenGLProfile </td><td class="memItemRight bottomAlign"><span class="name"><b>profile</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setProfile</b></span>(OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>profileChanged</b></span>(Qt3DRender::QGraphicsApiFilter::OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_profile(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_graphics_api_filter::OpenGLProfile,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setProfile(Qt3DRender::QGraphicsApiFilter::OpenGLProfile)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGraphicsApiFilter::setMinorVersion` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#minorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinorVersion</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersionChanged</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_minor_version(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMinorVersion(int)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGraphicsApiFilter::setMajorVersion` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#majorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMajorVersion</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersionChanged</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_major_version(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMajorVersion(int)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGraphicsApiFilter::setExtensions` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#extensions-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>extensions</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setExtensions</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>extensionsChanged</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_extensions(&self) -> ::qt_core::Receiver<(*const ::qt_core::QStringList,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setExtensions(QStringList const &)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QGraphicsApiFilter::setVendor` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#vendor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>vendor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVendor</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vendorChanged</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_vendor(&self) -> ::qt_core::Receiver<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setVendor(QString const &)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGraphicsApiFilter::apiChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#api-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Api </td><td class="memItemRight bottomAlign"><span class="name"><b>api</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setApi</b></span>(Api <i>api</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>apiChanged</b></span>(Qt3DRender::QGraphicsApiFilter::Api <i>api</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn api_changed(&self) -> ::qt_core::Signal<(crate::q_graphics_api_filter::Api,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2apiChanged(Qt3DRender::QGraphicsApiFilter::Api)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGraphicsApiFilter::profileChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#profile-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> OpenGLProfile </td><td class="memItemRight bottomAlign"><span class="name"><b>profile</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setProfile</b></span>(OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>profileChanged</b></span>(Qt3DRender::QGraphicsApiFilter::OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn profile_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_graphics_api_filter::OpenGLProfile,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2profileChanged(Qt3DRender::QGraphicsApiFilter::OpenGLProfile)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGraphicsApiFilter::minorVersionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#minorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinorVersion</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersionChanged</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn minor_version_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2minorVersionChanged(int)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGraphicsApiFilter::majorVersionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#majorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMajorVersion</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersionChanged</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn major_version_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2majorVersionChanged(int)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGraphicsApiFilter::extensionsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#extensions-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>extensions</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setExtensions</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>extensionsChanged</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn extensions_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QStringList,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2extensionsChanged(QStringList const &)\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGraphicsApiFilter::vendorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#vendor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>vendor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVendor</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vendorChanged</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn vendor_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2vendorChanged(QString const &)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the value of any property is changed.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QGraphicsApiFilter::graphicsApiFilterChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#graphicsApiFilterChanged">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the value of any property is changed.</p></div>
    #[inline(always)]
    pub fn graphics_api_filter_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2graphicsApiFilterChanged()\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::Api Qt3DRender::QGraphicsApiFilter::api() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#api-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Api </td><td class="memItemRight bottomAlign"><span class="name"><b>api</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setApi</b></span>(Api <i>api</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>apiChanged</b></span>(Qt3DRender::QGraphicsApiFilter::Api <i>api</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn api(&self) -> crate::q_graphics_api_filter::Api {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_api(
            self as *const crate::QGraphicsApiFilter,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList Qt3DRender::QGraphicsApiFilter::extensions() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#extensions-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>extensions</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setExtensions</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>extensionsChanged</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn extensions(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_extensions(
                self as *const crate::QGraphicsApiFilter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGraphicsApiFilter::majorVersion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#majorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMajorVersion</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersionChanged</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn major_version(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_majorVersion(
            self as *const crate::QGraphicsApiFilter,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QGraphicsApiFilter::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_metaObject(
                self as *const crate::QGraphicsApiFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QGraphicsApiFilter::minorVersion() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#minorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinorVersion</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersionChanged</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn minor_version(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_minorVersion(
            self as *const crate::QGraphicsApiFilter,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QGraphicsApiFilter::QGraphicsApiFilter(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#QGraphicsApiFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
    ) -> ::qt_core::QBox<crate::QGraphicsApiFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_QGraphicsApiFilter(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a> class identifies the API required for the attached <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QGraphicsApiFilter::QGraphicsApiFilter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a> class identifies the API required for the attached <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QGraphicsApiFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_QGraphicsApiFilter1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::OpenGLProfile Qt3DRender::QGraphicsApiFilter::profile() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#profile-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> OpenGLProfile </td><td class="memItemRight bottomAlign"><span class="name"><b>profile</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setProfile</b></span>(OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>profileChanged</b></span>(Qt3DRender::QGraphicsApiFilter::OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn profile(&self) -> crate::q_graphics_api_filter::OpenGLProfile {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_profile(
            self as *const crate::QGraphicsApiFilter,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QGraphicsApiFilter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_qt_metacall(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QGraphicsApiFilter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_qt_metacast(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            arg1,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGraphicsApiFilter::setApi(Qt3DRender::QGraphicsApiFilter::Api api)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#api-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Api </td><td class="memItemRight bottomAlign"><span class="name"><b>api</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setApi</b></span>(Api <i>api</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>apiChanged</b></span>(Qt3DRender::QGraphicsApiFilter::Api <i>api</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_api(&self, api: crate::q_graphics_api_filter::Api) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_setApi(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            api,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGraphicsApiFilter::setExtensions(const QStringList& extensions)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#extensions-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>extensions</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setExtensions</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>extensionsChanged</b></span>(const QStringList &amp;<i>extensions</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_extensions(
        &self,
        extensions: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_setExtensions(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(extensions)
                .as_raw_ptr(),
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGraphicsApiFilter::setMajorVersion(int majorVersion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#majorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMajorVersion</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>majorVersionChanged</b></span>(int <i>majorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_major_version(&self, major_version: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_setMajorVersion(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            major_version,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGraphicsApiFilter::setMinorVersion(int minorVersion)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#minorVersion-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersion</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMinorVersion</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>minorVersionChanged</b></span>(int <i>minorVersion</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_minor_version(&self, minor_version: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_setMinorVersion(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            minor_version,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGraphicsApiFilter::setProfile(Qt3DRender::QGraphicsApiFilter::OpenGLProfile profile)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#profile-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> OpenGLProfile </td><td class="memItemRight bottomAlign"><span class="name"><b>profile</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setProfile</b></span>(OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>profileChanged</b></span>(Qt3DRender::QGraphicsApiFilter::OpenGLProfile <i>profile</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_profile(&self, profile: crate::q_graphics_api_filter::OpenGLProfile) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_setProfile(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            profile,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QGraphicsApiFilter::setVendor(const QString& vendor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#vendor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>vendor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVendor</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vendorChanged</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_vendor(
        &self,
        vendor: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_setVendor(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(vendor)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QGraphicsApiFilter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QGraphicsApiFilter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString Qt3DRender::QGraphicsApiFilter::vendor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html#vendor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>vendor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVendor</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vendorChanged</b></span>(const QString &amp;<i>vendor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vendor(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_vendor(
                self as *const crate::QGraphicsApiFilter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">QLayer</a> class provides a way of filtering which entities will be rendered.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QLayer```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">QLayer</a> class provides a way of filtering which entities will be rendered.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> works in conjunction with the <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a> in the FrameGraph.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> doesn't define any new properties but is supposed to only be referenced.</p>
/// <pre class="cpp">
///
///    <span class="preprocessor">#include &lt;Qt3DCore/QEntity&gt;</span>
///    <span class="preprocessor">#include &lt;Qt3DRender/QGeometryRenderer&gt;</span>
///    <span class="preprocessor">#include &lt;Qt3DRender/QLayer&gt;</span>
///    <span class="preprocessor">#include &lt;Qt3DRender/QLayerFilter&gt;</span>
///    <span class="preprocessor">#include &lt;Qt3DRender/QViewport&gt;</span>
///
///   <span class="comment">// Scene</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>rootEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>;
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>renderableEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>(rootEntity);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span> <span class="operator">*</span>geometryRenderer <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span>(renderableEntity);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#QLayer">QLayer</a></span> <span class="operator">*</span>layer1 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#QLayer">QLayer</a></span>(renderableEntity);
///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(geometryRenderer);
///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(layer1);
///
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///
///   <span class="comment">// FrameGraph</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span> <span class="operator">*</span>viewport <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span>;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">QLayerFilter</a></span> <span class="operator">*</span>layerFilter <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">QLayerFilter</a></span>(viewport);
///   layerFilter<span class="operator">-</span><span class="operator">&gt;</span>addLayer(layer1);
///
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///
/// </pre></div>
#[repr(C)]
pub struct QLayer {
    _unused: u8,
}
impl QLayer {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QLayer::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_metaObject(
                self as *const crate::QLayer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">QLayer</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLayer::QLayer(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#QLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">QLayer</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_QLayer(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">QLayer</a> class provides a way of filtering which entities will be rendered.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLayer::QLayer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">QLayer</a> class provides a way of filtering which entities will be rendered.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> works in conjunction with the <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a> in the FrameGraph.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> doesn't define any new properties but is supposed to only be referenced.</p>
    /// <pre class="cpp">
    ///
    ///    <span class="preprocessor">#include &lt;Qt3DCore/QEntity&gt;</span>
    ///    <span class="preprocessor">#include &lt;Qt3DRender/QGeometryRenderer&gt;</span>
    ///    <span class="preprocessor">#include &lt;Qt3DRender/QLayer&gt;</span>
    ///    <span class="preprocessor">#include &lt;Qt3DRender/QLayerFilter&gt;</span>
    ///    <span class="preprocessor">#include &lt;Qt3DRender/QViewport&gt;</span>
    ///
    ///   <span class="comment">// Scene</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>rootEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>renderableEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>(rootEntity);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span> <span class="operator">*</span>geometryRenderer <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span>(renderableEntity);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#QLayer">QLayer</a></span> <span class="operator">*</span>layer1 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#QLayer">QLayer</a></span>(renderableEntity);
    ///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(geometryRenderer);
    ///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(layer1);
    ///
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    ///   <span class="comment">// FrameGraph</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span> <span class="operator">*</span>viewport <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">QLayerFilter</a></span> <span class="operator">*</span>layerFilter <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">QLayerFilter</a></span>(viewport);
    ///   layerFilter<span class="operator">-</span><span class="operator">&gt;</span>addLayer(layer1);
    ///
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QLayer> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_QLayer1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QLayer::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_qt_metacall(
            self as *const crate::QLayer as *mut crate::QLayer,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QLayer::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_qt_metacast(
            self as *const crate::QLayer as *mut crate::QLayer,
            arg1,
        )
    }

    /// <p>Specifies if the layer is also applied to the entity subtree.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QLayer::recursive() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#recursive-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if the layer is also applied to the entity subtree.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>recursive</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRecursive</b></span>(bool <i>recursive</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>recursiveChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn recursive(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_recursive(self as *const crate::QLayer)
    }

    /// <p>Specifies if the layer is also applied to the entity subtree.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QLayer::recursiveChanged()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#recursive-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if the layer is also applied to the entity subtree.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>recursive</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRecursive</b></span>(bool <i>recursive</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>recursiveChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn recursive_changed(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_recursiveChanged(
            self as *const crate::QLayer as *mut crate::QLayer,
        )
    }

    /// <p>Specifies if the layer is also applied to the entity subtree.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QLayer::setRecursive(bool recursive)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html#recursive-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if the layer is also applied to the entity subtree.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>recursive</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRecursive</b></span>(bool <i>recursive</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>recursiveChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_recursive(&self, recursive: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_setRecursive(
            self as *const crate::QLayer as *mut crate::QLayer,
            recursive,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLayer::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLayer::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_layer_filter {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QLayerFilter```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QLayerFilter::FilterMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FilterMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FilterMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FilterMode(value)
        }
    }

    impl From<FilterMode> for ::std::os::raw::c_int {
        fn from(value: FilterMode) -> Self {
            value.0
        }
    }

    impl FilterMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FilterMode {
        /// C++ enum variant: <span style='color: green;'>```AcceptAnyMatchingLayers = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const AcceptAnyMatchingLayers: crate::q_layer_filter::FilterMode =
            crate::q_layer_filter::FilterMode(0);
        /// C++ enum variant: <span style='color: green;'>```AcceptAllMatchingLayers = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const AcceptAllMatchingLayers: crate::q_layer_filter::FilterMode =
            crate::q_layer_filter::FilterMode(1);
        /// C++ enum variant: <span style='color: green;'>```DiscardAnyMatchingLayers = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const DiscardAnyMatchingLayers: crate::q_layer_filter::FilterMode =
            crate::q_layer_filter::FilterMode(2);
        /// C++ enum variant: <span style='color: green;'>```DiscardAllMatchingLayers = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const DiscardAllMatchingLayers: crate::q_layer_filter::FilterMode =
            crate::q_layer_filter::FilterMode(3);
    }
}
/// <p>Controls layers Drawn in a frame graph branch.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QLayerFilter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Controls layers Drawn in a frame graph branch.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a> can be used to instruct the renderer as to which layer(s) to draw in that branch of the frame graph. The <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a> selects which entities to draw based on the <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> instances added to the <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">QLayerFilter</a> and as components to the <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">Qt3DCore::QEntity</a>.</p></div>
#[repr(C)]
pub struct QLayerFilter {
    _unused: u8,
}
impl QLayerFilter {
    /// <p>Add <i>layer</i> to the current list of layers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QLayerFilter::addLayer(Qt3DRender::QLayer* layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html#addLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add <i>layer</i> to the current list of layers</p></div>
    #[inline(always)]
    pub unsafe fn add_layer(
        &self,
        layer: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QLayer>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_addLayer(
            self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QLayer>>::cast_into(layer).as_raw_ptr()
                as *mut crate::QLayer,
        )
    }

    /// <p>Holds the filter mode specifying the entities to select for drawing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayerFilter::FilterMode Qt3DRender::QLayerFilter::filterMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html#filterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the filter mode specifying the entities to select for drawing.</p>
    /// <p>The default value is AcceptMatchingLayers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QLayerFilter::FilterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>filterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFilterMode</b></span>(Qt3DRender::QLayerFilter::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>filterModeChanged</b></span>(Qt3DRender::QLayerFilter::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn filter_mode(&self) -> crate::q_layer_filter::FilterMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_filterMode(
            self as *const crate::QLayerFilter,
        )
    }

    /// <p>Holds the filter mode specifying the entities to select for drawing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QLayerFilter::filterModeChanged(Qt3DRender::QLayerFilter::FilterMode filterMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html#filterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the filter mode specifying the entities to select for drawing.</p>
    /// <p>The default value is AcceptMatchingLayers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QLayerFilter::FilterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>filterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFilterMode</b></span>(Qt3DRender::QLayerFilter::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>filterModeChanged</b></span>(Qt3DRender::QLayerFilter::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn filter_mode_changed(&self, filter_mode: crate::q_layer_filter::FilterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_filterModeChanged(
            self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
            filter_mode,
        )
    }

    /// <p>Returns the current list of layers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*> Qt3DRender::QLayerFilter::layers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html#layers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current list of layers</p></div>
    #[inline(always)]
    pub unsafe fn layers(&self) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_layers(
                self as *const crate::QLayerFilter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QLayerFilter::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_metaObject(
                self as *const crate::QLayerFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QLayerFilter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLayerFilter::QLayerFilter(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html#QLayerFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QLayerFilter.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QLayerFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_QLayerFilter(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Controls layers Drawn in a frame graph branch.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLayerFilter::QLayerFilter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Controls layers Drawn in a frame graph branch.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a> can be used to instruct the renderer as to which layer(s) to draw in that branch of the frame graph. The <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">Qt3DRender::QLayerFilter</a> selects which entities to draw based on the <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> instances added to the <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html">QLayerFilter</a> and as components to the <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">Qt3DCore::QEntity</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QLayerFilter> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_QLayerFilter1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QLayerFilter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_qt_metacall(
            self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QLayerFilter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_qt_metacast(
            self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
            arg1,
        )
    }

    /// <p>Remove <i>layer</i> from the current list of layers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QLayerFilter::removeLayer(Qt3DRender::QLayer* layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html#removeLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove <i>layer</i> from the current list of layers</p></div>
    #[inline(always)]
    pub unsafe fn remove_layer(
        &self,
        layer: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QLayer>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_removeLayer(
            self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QLayer>>::cast_into(layer).as_raw_ptr()
                as *mut crate::QLayer,
        )
    }

    /// <p>Holds the filter mode specifying the entities to select for drawing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QLayerFilter::setFilterMode(Qt3DRender::QLayerFilter::FilterMode filterMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlayerfilter.html#filterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the filter mode specifying the entities to select for drawing.</p>
    /// <p>The default value is AcceptMatchingLayers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QLayerFilter::FilterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>filterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFilterMode</b></span>(Qt3DRender::QLayerFilter::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>filterModeChanged</b></span>(Qt3DRender::QLayerFilter::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_filter_mode(&self, filter_mode: crate::q_layer_filter::FilterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_setFilterMode(
            self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
            filter_mode,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLayerFilter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLayerFilter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">QLevelOfDetailBoundingSphere</a> class provides a simple spherical volume, defined by it's center and radius.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QLevelOfDetailBoundingSphere```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">QLevelOfDetailBoundingSphere</a> class provides a simple spherical volume, defined by it's center and radius.</p></div>
#[repr(C)]
pub struct QLevelOfDetailBoundingSphere {
    _unused: u8,
}
impl QLevelOfDetailBoundingSphere {
    /// <p>Specifies the center of the bounding sphere</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QLevelOfDetailBoundingSphere::center() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html#center-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the center of the bounding sphere</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>center</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn center(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_center(
                self as *const crate::QLevelOfDetailBoundingSphere,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy-assignment operator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailBoundingSphere& Qt3DRender::QLevelOfDetailBoundingSphere::operator=(const Qt3DRender::QLevelOfDetailBoundingSphere& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy-assignment operator.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>,
    ) -> ::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_operator_(self as *const crate::QLevelOfDetailBoundingSphere as *mut crate::QLevelOfDetailBoundingSphere, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>::cast_into(other).as_raw_ptr())
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QLevelOfDetailBoundingSphere::isEmpty() const```</span>.
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_isEmpty(
            self as *const crate::QLevelOfDetailBoundingSphere,
        )
    }

    /// <p>Default constructs an instance of QLevelOfDetailBoundingSphere.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetailBoundingSphere::QLevelOfDetailBoundingSphere(QVector3D center = …, float radius = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html#QLevelOfDetailBoundingSphere">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QLevelOfDetailBoundingSphere.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        radius: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_QLevelOfDetailBoundingSphere(::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(center).as_raw_ptr(), radius)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">QLevelOfDetailBoundingSphere</a> class provides a simple spherical volume, defined by it's center and radius.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetailBoundingSphere::QLevelOfDetailBoundingSphere()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">QLevelOfDetailBoundingSphere</a> class provides a simple spherical volume, defined by it's center and radius.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_QLevelOfDetailBoundingSphere2()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Default constructs an instance of QLevelOfDetailBoundingSphere.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetailBoundingSphere::QLevelOfDetailBoundingSphere(QVector3D center = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html#QLevelOfDetailBoundingSphere">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QLevelOfDetailBoundingSphere.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) -> ::cpp_core::CppBox<crate::QLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_QLevelOfDetailBoundingSphere3(::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(center).as_raw_ptr())
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Copy constructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetailBoundingSphere::QLevelOfDetailBoundingSphere(const Qt3DRender::QLevelOfDetailBoundingSphere& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html#QLevelOfDetailBoundingSphere-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy constructor.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>,
    ) -> ::cpp_core::CppBox<crate::QLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_QLevelOfDetailBoundingSphere1(::cpp_core::CastInto::<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>::cast_into(other).as_raw_ptr())
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the radius of the bounding sphere</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QLevelOfDetailBoundingSphere::radius() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html#radius-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the radius of the bounding sphere</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>radius</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn radius(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_radius(
            self as *const crate::QLevelOfDetailBoundingSphere,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }
}

pub mod q_level_of_detail {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QLevelOfDetail```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QLevelOfDetail::ThresholdType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ThresholdType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ThresholdType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ThresholdType(value)
        }
    }

    impl From<ThresholdType> for ::std::os::raw::c_int {
        fn from(value: ThresholdType) -> Self {
            value.0
        }
    }

    impl ThresholdType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ThresholdType {
        /// C++ enum variant: <span style='color: green;'>```DistanceToCameraThreshold = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const DistanceToCameraThreshold: crate::q_level_of_detail::ThresholdType =
            crate::q_level_of_detail::ThresholdType(0);
        /// C++ enum variant: <span style='color: green;'>```ProjectedScreenPixelSizeThreshold = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const ProjectedScreenPixelSizeThreshold: crate::q_level_of_detail::ThresholdType =
            crate::q_level_of_detail::ThresholdType(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> class provides a way of controlling the complexity of rendered entities based on their size on the screen.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QLevelOfDetail```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> class provides a way of controlling the complexity of rendered entities based on their size on the screen.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> can be used to control the representation of an entity based on distance from the observer or size on the screen.</p>
/// <p>In order to improve rendering performance, objects that are very small can be rendered using far fewer details, in geometry or texture.</p>
/// <p>The component is controlled by specifying thresholds of values which are interpreted as either distances from the camera or screen size.</p>
/// <p>As the point of view changes, the <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a> property will change to reflect matching value in the range array.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a> property can then be used, for example, to enable or disable entities, change material, etc.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qml-qt3d-render-levelofdetail.html">LevelOfDetail</a> component is not shareable between multiple <a href="http://doc.qt.io/qt-5/qml-qt3d-core-entity.html">entities</a>.</p>
/// <pre class="cpp">
///
///    <span class="preprocessor">#include &lt;Qt3DCore/QEntity&gt;</span>
///    <span class="preprocessor">#include &lt;Qt3DRender/QGeometryRenderer&gt;</span>
///    <span class="preprocessor">#include &lt;Qt3DRender/QLevelOfDetail&gt;</span>
///
///   <span class="comment">// Scene</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>rootEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>;
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>renderableEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>(rootEntity);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span> <span class="operator">*</span>geometryRenderer <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span>(renderableEntity);
///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(geometryRenderer);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#QLevelOfDetail">QLevelOfDetail</a></span><span class="operator">*</span> lod <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3Render</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#QLevelOfDetail">QLevelOfDetail</a></span>(renderableEntity);
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span><span class="operator">&gt;</span> thresholds <span class="operator">=</span> {<span class="number">20</span><span class="operator">,</span> <span class="number">35</span><span class="operator">,</span> <span class="number">50</span><span class="operator">,</span> <span class="number">65</span>};
///   lod<span class="operator">-</span><span class="operator">&gt;</span>setThresholds(thresholds);
///   lod<span class="operator">-</span><span class="operator">&gt;</span>setCamera(mainCamera);
///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(lod);
///
///   <span class="comment">// connect to QLevelOfDetail::currentIndexChanged to toggle rendering</span>
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///
/// </pre></div>
#[repr(C)]
pub struct QLevelOfDetail {
    _unused: u8,
}
impl QLevelOfDetail {
    /// <p>Sets the <i>camera</i> relative to which distance and size are computed.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QLevelOfDetail::setCamera` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCamera">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>camera</i> relative to which distance and size are computed.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#camera-prop">camera</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#camera-prop">camera</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_camera(&self) -> ::qt_core::Receiver<(*mut crate::QCamera,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setCamera(Qt3DRender::QCamera *)\0",
                ),
            )
        }
    }

    /// <p>Sets the <i>currentIndex</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QLevelOfDetail::setCurrentIndex` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCurrentIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>currentIndex</i>.</p>
    /// <p><b>Note: </b>This should not normally be set by the user.</p><p>However, if the component is disabled, then changing the current index is a simple way of switching between multiple representations.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_current_index(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setCurrentIndex(int)\0"),
            )
        }
    }

    /// <p>Sets the way thresholds values are interpreted with parameter <i>thresholdType</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QLevelOfDetail::setThresholdType` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholdType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the way thresholds values are interpreted with parameter <i>thresholdType</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">thresholdType</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">thresholdType</a>() and <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ThresholdType</a>.</p></div>
    #[inline(always)]
    pub fn slot_set_threshold_type(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_level_of_detail::ThresholdType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType)\0",
                ),
            )
        }
    }

    /// <p>Sets the range values in <i>thresholds</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QLevelOfDetail::setThresholds` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholds">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the range values in <i>thresholds</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholds-prop">thresholds</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholds-prop">thresholds</a>() and <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">Qt3DRender::QLevelOfDetail::thresholdType</a>.</p></div>
    #[inline(always)]
    pub fn slot_set_thresholds(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVectorOfDouble,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setThresholds(QVector< double > const &)\0",
                ),
            )
        }
    }

    /// <p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QLevelOfDetail::setVolumeOverride` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#volumeOverride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    /// <p>If this value to nullptr, the bounding volume of the entity is used. Care must be taken that this bounding volume never becomes invalid.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QLevelOfDetailBoundingSphere </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVolumeOverride</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverrideChanged</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">Qt3DRender::QLevelOfDetailBoundingSphere</a>.</p></div>
    #[inline(always)]
    pub fn slot_set_volume_override(
        &self,
    ) -> ::qt_core::Receiver<(*const crate::QLevelOfDetailBoundingSphere,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setVolumeOverride(Qt3DRender::QLevelOfDetailBoundingSphere const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the id of the camera that is used to compute the actual distance or the screen size.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QLevelOfDetail::cameraChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#camera-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the id of the camera that is used to compute the actual distance or the screen size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QCamera *</td><td class="memItemRight bottomAlign"><span class="name"><b>camera</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCamera">setCamera</a></b></span>(QCamera *<i>camera</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cameraChanged</b></span>(QCamera *<i>camera</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn camera_changed(&self) -> ::qt_core::Signal<(*mut crate::QCamera,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2cameraChanged(Qt3DRender::QCamera *)\0",
                ),
            )
        }
    }

    /// <p>The index in the range array which matches the current distance to the camera or screen size.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QLevelOfDetail::currentIndexChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The index in the range array which matches the current distance to the camera or screen size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>currentIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCurrentIndex">setCurrentIndex</a></b></span>(int <i>currentIndex</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>currentIndexChanged</b></span>(int <i>currentIndex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn current_index_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2currentIndexChanged(int)\0"),
            )
        }
    }

    /// <p>Specifies how range values are interpreted.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QLevelOfDetail::thresholdTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies how range values are interpreted.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ThresholdType </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholdType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholdType">setThresholdType</a></b></span>(ThresholdType <i>thresholdType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholdTypeChanged</b></span>(ThresholdType <i>thresholdType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ThresholdType</a>.</p></div>
    #[inline(always)]
    pub fn threshold_type_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_level_of_detail::ThresholdType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2thresholdTypeChanged(Qt3DRender::QLevelOfDetail::ThresholdType)\0",
                ),
            )
        }
    }

    /// <p>Array of range values as float point numbers. The value for the most detailed representation should be specified first.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QLevelOfDetail::thresholdsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholds-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Array of range values as float point numbers. The value for the most detailed representation should be specified first.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">Qt3DRender::QLevelOfDetail::thresholdType</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold</a>, values should be specified in ascending order, in camera space coordinates</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">Qt3DRender::QLevelOfDetail::thresholdType</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold</a>, values should be specified in descending order, in screen space pixels.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;qreal&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholds</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholds">setThresholds</a></b></span>(const QVector&lt;qreal&gt; &amp;<i>thresholds</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholdsChanged</b></span>(const QVector&lt;qreal&gt; &amp;<i>thresholds</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ThresholdType</a>.</p></div>
    #[inline(always)]
    pub fn thresholds_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVectorOfDouble,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2thresholdsChanged(QVector< double > const &)\0",
                ),
            )
        }
    }

    /// <p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QLevelOfDetail::volumeOverrideChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#volumeOverride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    /// <p>If this value to nullptr, the bounding volume of the entity is used. Care must be taken that this bounding volume never becomes invalid.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QLevelOfDetailBoundingSphere </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVolumeOverride</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverrideChanged</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">Qt3DRender::QLevelOfDetailBoundingSphere</a>.</p></div>
    #[inline(always)]
    pub fn volume_override_changed(
        &self,
    ) -> ::qt_core::Signal<(*const crate::QLevelOfDetailBoundingSphere,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2volumeOverrideChanged(Qt3DRender::QLevelOfDetailBoundingSphere const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the id of the camera that is used to compute the actual distance or the screen size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCamera* Qt3DRender::QLevelOfDetail::camera() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#camera-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the id of the camera that is used to compute the actual distance or the screen size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QCamera *</td><td class="memItemRight bottomAlign"><span class="name"><b>camera</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCamera">setCamera</a></b></span>(QCamera *<i>camera</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cameraChanged</b></span>(QCamera *<i>camera</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn camera(&self) -> ::qt_core::QPtr<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_camera(
                self as *const crate::QLevelOfDetail,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See <a href="http://doc.qt.io/qt-5/qobject.html#Q_INVOKABLE">Q_INVOKABLE</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailBoundingSphere Qt3DRender::QLevelOfDetail::createBoundingSphere(const QVector3D& center, float radius)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#createBoundingSphere">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See <a href="http://doc.qt.io/qt-5/qobject.html#Q_INVOKABLE">Q_INVOKABLE</a>.</p></div>
    #[inline(always)]
    pub unsafe fn create_bounding_sphere(
        &self,
        center: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        radius: ::std::os::raw::c_float,
    ) -> ::cpp_core::CppBox<crate::QLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_createBoundingSphere(
                self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(center)
                    .as_raw_ptr(),
                radius,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The index in the range array which matches the current distance to the camera or screen size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QLevelOfDetail::currentIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The index in the range array which matches the current distance to the camera or screen size.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>currentIndex</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCurrentIndex">setCurrentIndex</a></b></span>(int <i>currentIndex</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>currentIndexChanged</b></span>(int <i>currentIndex</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn current_index(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_currentIndex(
            self as *const crate::QLevelOfDetail,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QLevelOfDetail::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_metaObject(
                self as *const crate::QLevelOfDetail,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetail::QLevelOfDetail(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#QLevelOfDetail">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_QLevelOfDetail(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> class provides a way of controlling the complexity of rendered entities based on their size on the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetail::QLevelOfDetail()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> class provides a way of controlling the complexity of rendered entities based on their size on the screen.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html">QLevelOfDetail</a> can be used to control the representation of an entity based on distance from the observer or size on the screen.</p>
    /// <p>In order to improve rendering performance, objects that are very small can be rendered using far fewer details, in geometry or texture.</p>
    /// <p>The component is controlled by specifying thresholds of values which are interpreted as either distances from the camera or screen size.</p>
    /// <p>As the point of view changes, the <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a> property will change to reflect matching value in the range array.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a> property can then be used, for example, to enable or disable entities, change material, etc.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qml-qt3d-render-levelofdetail.html">LevelOfDetail</a> component is not shareable between multiple <a href="http://doc.qt.io/qt-5/qml-qt3d-core-entity.html">entities</a>.</p>
    /// <pre class="cpp">
    ///
    ///    <span class="preprocessor">#include &lt;Qt3DCore/QEntity&gt;</span>
    ///    <span class="preprocessor">#include &lt;Qt3DRender/QGeometryRenderer&gt;</span>
    ///    <span class="preprocessor">#include &lt;Qt3DRender/QLevelOfDetail&gt;</span>
    ///
    ///   <span class="comment">// Scene</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>rootEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>;
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span> <span class="operator">*</span>renderableEntity <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type">QEntity</span>(rootEntity);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span> <span class="operator">*</span>geometryRenderer <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3dcore-module.html">Qt3DCore</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">QGeometryRenderer</a></span>(renderableEntity);
    ///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(geometryRenderer);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#QLevelOfDetail">QLevelOfDetail</a></span><span class="operator">*</span> lod <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3Render</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#QLevelOfDetail">QLevelOfDetail</a></span>(renderableEntity);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qtglobal.html#qreal-typedef">qreal</a></span><span class="operator">&gt;</span> thresholds <span class="operator">=</span> {<span class="number">20</span><span class="operator">,</span> <span class="number">35</span><span class="operator">,</span> <span class="number">50</span><span class="operator">,</span> <span class="number">65</span>};
    ///   lod<span class="operator">-</span><span class="operator">&gt;</span>setThresholds(thresholds);
    ///   lod<span class="operator">-</span><span class="operator">&gt;</span>setCamera(mainCamera);
    ///   renderableEntity<span class="operator">-</span><span class="operator">&gt;</span>addComponent(lod);
    ///
    ///   <span class="comment">// connect to QLevelOfDetail::currentIndexChanged to toggle rendering</span>
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QLevelOfDetail> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_QLevelOfDetail1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QLevelOfDetail::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_qt_metacall(
            self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QLevelOfDetail::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_qt_metacast(
            self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
            arg1,
        )
    }

    /// <p>Sets the <i>camera</i> relative to which distance and size are computed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QLevelOfDetail::setCamera(Qt3DRender::QCamera* camera)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCamera">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>camera</i> relative to which distance and size are computed.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#camera-prop">camera</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#camera-prop">camera</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_camera(
        &self,
        camera: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QCamera>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_setCamera(
            self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QCamera>>::cast_into(camera).as_raw_ptr()
                as *mut crate::QCamera,
        )
    }

    /// <p>Sets the <i>currentIndex</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QLevelOfDetail::setCurrentIndex(int currentIndex)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setCurrentIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>currentIndex</i>.</p>
    /// <p><b>Note: </b>This should not normally be set by the user.</p><p>However, if the component is disabled, then changing the current index is a simple way of switching between multiple representations.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">currentIndex</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_current_index(&self, current_index: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_setCurrentIndex(
            self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
            current_index,
        )
    }

    /// <p>Sets the way thresholds values are interpreted with parameter <i>thresholdType</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QLevelOfDetail::setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholdType">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the way thresholds values are interpreted with parameter <i>thresholdType</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">thresholdType</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">thresholdType</a>() and <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ThresholdType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_threshold_type(
        &self,
        threshold_type: crate::q_level_of_detail::ThresholdType,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_setThresholdType(
            self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
            threshold_type,
        )
    }

    /// <p>Sets the range values in <i>thresholds</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QLevelOfDetail::setThresholds(const QVector<double>& thresholds)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholds">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the range values in <i>thresholds</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholds-prop">thresholds</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholds-prop">thresholds</a>() and <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">Qt3DRender::QLevelOfDetail::thresholdType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_thresholds(
        &self,
        thresholds: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVectorOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_setThresholds(
            self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVectorOfDouble>>::cast_into(
                thresholds,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QLevelOfDetail::setVolumeOverride(const Qt3DRender::QLevelOfDetailBoundingSphere& volumeOverride)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#volumeOverride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    /// <p>If this value to nullptr, the bounding volume of the entity is used. Care must be taken that this bounding volume never becomes invalid.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QLevelOfDetailBoundingSphere </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVolumeOverride</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverrideChanged</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">Qt3DRender::QLevelOfDetailBoundingSphere</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_volume_override(
        &self,
        volume_override: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_setVolumeOverride(self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>::cast_into(volume_override).as_raw_ptr())
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Specifies how range values are interpreted.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail::ThresholdType Qt3DRender::QLevelOfDetail::thresholdType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies how range values are interpreted.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> ThresholdType </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholdType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholdType">setThresholdType</a></b></span>(ThresholdType <i>thresholdType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholdTypeChanged</b></span>(ThresholdType <i>thresholdType</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ThresholdType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn threshold_type(&self) -> crate::q_level_of_detail::ThresholdType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_thresholdType(
            self as *const crate::QLevelOfDetail,
        )
    }

    /// <p>Array of range values as float point numbers. The value for the most detailed representation should be specified first.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<double> Qt3DRender::QLevelOfDetail::thresholds() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholds-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Array of range values as float point numbers. The value for the most detailed representation should be specified first.</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">Qt3DRender::QLevelOfDetail::thresholdType</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold</a>, values should be specified in ascending order, in camera space coordinates</p>
    /// <p>If <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#thresholdType-prop">Qt3DRender::QLevelOfDetail::thresholdType</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold</a>, values should be specified in descending order, in screen space pixels.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;qreal&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholds</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#setThresholds">setThresholds</a></b></span>(const QVector&lt;qreal&gt; &amp;<i>thresholds</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>thresholdsChanged</b></span>(const QVector&lt;qreal&gt; &amp;<i>thresholds</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#ThresholdType-enum">Qt3DRender::QLevelOfDetail::ThresholdType</a>.</p></div>
    #[inline(always)]
    pub unsafe fn thresholds(&self) -> ::cpp_core::CppBox<::qt_gui::QVectorOfDouble> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_thresholds(
                self as *const crate::QLevelOfDetail,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLevelOfDetail::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLevelOfDetail::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailBoundingSphere Qt3DRender::QLevelOfDetail::volumeOverride() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#volumeOverride-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The default is a sphere of radius 1 and centered at the local origin of the entity. This proxy volume is used to compute the distance to the camera or the size of the screen projection.</p>
    /// <p>If this value to nullptr, the bounding volume of the entity is used. Care must be taken that this bounding volume never becomes invalid.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QLevelOfDetailBoundingSphere </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverride</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVolumeOverride</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>volumeOverrideChanged</b></span>(const QLevelOfDetailBoundingSphere &amp;<i>volumeOverride</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html">Qt3DRender::QLevelOfDetailBoundingSphere</a>.</p></div>
    #[inline(always)]
    pub unsafe fn volume_override(
        &self,
    ) -> ::cpp_core::CppBox<crate::QLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_volumeOverride(
                self as *const crate::QLevelOfDetail,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Provides a way of enabling child entities based on distance or screen size.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailswitch.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of enabling child entities based on distance or screen size.</p>
/// <p>This component is assigned to an entity. When the entity changes distance relative to the camera, the <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailswitch.html">QLevelOfDetailSwitch</a> will disable all the child entities except the one matching index <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">Qt3DRender::QLevelOfDetailSwitch::currentIndex</a>.</p></div>
#[repr(C)]
pub struct QLevelOfDetailSwitch {
    _unused: u8,
}
impl QLevelOfDetailSwitch {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QLevelOfDetailSwitch::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_metaObject(
                self as *const crate::QLevelOfDetailSwitch,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailswitch.html">QLevelOfDetailSwitch</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetailSwitch::QLevelOfDetailSwitch(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailswitch.html#QLevelOfDetailSwitch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailswitch.html">QLevelOfDetailSwitch</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_QLevelOfDetailSwitch(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides a way of enabling child entities based on distance or screen size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLevelOfDetailSwitch::QLevelOfDetailSwitch()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailswitch.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of enabling child entities based on distance or screen size.</p>
    /// <p>This component is assigned to an entity. When the entity changes distance relative to the camera, the <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailswitch.html">QLevelOfDetailSwitch</a> will disable all the child entities except the one matching index <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetail.html#currentIndex-prop">Qt3DRender::QLevelOfDetailSwitch::currentIndex</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_QLevelOfDetailSwitch1(
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QLevelOfDetailSwitch::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_qt_metacall(
            self as *const crate::QLevelOfDetailSwitch as *mut crate::QLevelOfDetailSwitch,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QLevelOfDetailSwitch::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_qt_metacast(
            self as *const crate::QLevelOfDetailSwitch as *mut crate::QLevelOfDetailSwitch,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLevelOfDetailSwitch::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLevelOfDetailSwitch::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Provides an abstract class that should be the base of all material component classes in a scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QMaterial```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides an abstract class that should be the base of all material component classes in a scene.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> provides a way to specify the rendering of an <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">entity</a>. Any aspect can define its own subclass of <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> so that a Material can be used to describe a visual element; for example, the way sound should reflect off an element, the temperature of a surface, and so on.</p>
/// <p>In itself, a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> doesn't do anything. It's only when it references a <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> node that a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> becomes useful.</p>
/// <p>In practice, it often happens that a single <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> is being referenced by several <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> components. This allows to only create the effect, techniques, passes and shaders once while allowing to specify the material by adding <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> instances.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> defined on a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> is overridden by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> (of the same name) defined in a <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> or a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a>.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span> <span class="operator">*</span>material1 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span> <span class="operator">*</span>material2 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span>();
///
///   <span class="comment">// Create effect, technique, render pass and shader</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a></span> <span class="operator">*</span>effect <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span> <span class="operator">*</span>gl3Technique <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>gl3Pass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span> <span class="operator">*</span>glShader <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span>();
///
///   <span class="comment">// Set the shader on the render pass</span>
///   gl3Pass<span class="operator">-</span><span class="operator">&gt;</span>setShaderProgram(glShader);
///
///   <span class="comment">// Add the pass to the technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(gl3Pass);
///
///   <span class="comment">// Set the targeted GL version for the technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setApi(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>OpenGL);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMajorVersion(<span class="number">3</span>);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMinorVersion(<span class="number">1</span>);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setProfile(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>CoreProfile);
///
///   <span class="comment">// Add the technique to the effect</span>
///   effect<span class="operator">-</span><span class="operator">&gt;</span>addTechnique(gl3Technique);
///
///   <span class="comment">// Set the effect on the materials</span>
///   material1<span class="operator">-</span><span class="operator">&gt;</span>setEffect(effect);
///   material2<span class="operator">-</span><span class="operator">&gt;</span>setEffect(effect);
///
///   <span class="comment">// Set different parameters on the materials</span>
///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> parameterName <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"color"</span>);
///   material1<span class="operator">-</span><span class="operator">&gt;</span>addParameter(<span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(parameterName<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span>);
///   material2<span class="operator">-</span><span class="operator">&gt;</span>addParameter(<span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(parameterName<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>);
///
/// </pre></div>
#[repr(C)]
pub struct QMaterial {
    _unused: u8,
}
impl QMaterial {
    /// <p>Specifies the effect to be used with the material.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QMaterial::setEffect` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#effect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the effect to be used with the material.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QEffect *</td><td class="memItemRight bottomAlign"><span class="name"><b>effect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEffect</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>effectChanged</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_effect(&self) -> ::qt_core::Receiver<(*mut crate::QEffect,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setEffect(Qt3DRender::QEffect *)\0",
                ),
            )
        }
    }

    /// <p>Specifies the effect to be used with the material.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QMaterial::effectChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#effect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the effect to be used with the material.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QEffect *</td><td class="memItemRight bottomAlign"><span class="name"><b>effect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEffect</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>effectChanged</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn effect_changed(&self) -> ::qt_core::Signal<(*mut crate::QEffect,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2effectChanged(Qt3DRender::QEffect *)\0",
                ),
            )
        }
    }

    /// <p>Add a <i>parameter</i> to the material's parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QMaterial::addParameter(Qt3DRender::QParameter* parameter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#addParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add a <i>parameter</i> to the material's parameters.</p></div>
    #[inline(always)]
    pub unsafe fn add_parameter(
        &self,
        parameter: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_addParameter(
            self as *const crate::QMaterial as *mut crate::QMaterial,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(parameter)
                .as_raw_ptr() as *mut crate::QParameter,
        )
    }

    /// <p>Specifies the effect to be used with the material.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEffect* Qt3DRender::QMaterial::effect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#effect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the effect to be used with the material.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QEffect *</td><td class="memItemRight bottomAlign"><span class="name"><b>effect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEffect</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>effectChanged</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn effect(&self) -> ::qt_core::QPtr<crate::QEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_effect(
                self as *const crate::QMaterial,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QMaterial::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_metaObject(
                self as *const crate::QMaterial,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QMaterial.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMaterial::QMaterial(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QMaterial.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QMaterial> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_QMaterial(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides an abstract class that should be the base of all material component classes in a scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMaterial::QMaterial()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides an abstract class that should be the base of all material component classes in a scene.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> provides a way to specify the rendering of an <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">entity</a>. Any aspect can define its own subclass of <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> so that a Material can be used to describe a visual element; for example, the way sound should reflect off an element, the temperature of a surface, and so on.</p>
    /// <p>In itself, a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> doesn't do anything. It's only when it references a <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> node that a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> becomes useful.</p>
    /// <p>In practice, it often happens that a single <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> is being referenced by several <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> components. This allows to only create the effect, techniques, passes and shaders once while allowing to specify the material by adding <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> instances.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> defined on a <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a> is overridden by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> (of the same name) defined in a <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> or a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a>.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span> <span class="operator">*</span>material1 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span> <span class="operator">*</span>material2 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#QMaterial">QMaterial</a></span>();
    ///
    ///   <span class="comment">// Create effect, technique, render pass and shader</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a></span> <span class="operator">*</span>effect <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span> <span class="operator">*</span>gl3Technique <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>gl3Pass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span> <span class="operator">*</span>glShader <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span>();
    ///
    ///   <span class="comment">// Set the shader on the render pass</span>
    ///   gl3Pass<span class="operator">-</span><span class="operator">&gt;</span>setShaderProgram(glShader);
    ///
    ///   <span class="comment">// Add the pass to the technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(gl3Pass);
    ///
    ///   <span class="comment">// Set the targeted GL version for the technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setApi(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>OpenGL);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMajorVersion(<span class="number">3</span>);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMinorVersion(<span class="number">1</span>);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setProfile(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>CoreProfile);
    ///
    ///   <span class="comment">// Add the technique to the effect</span>
    ///   effect<span class="operator">-</span><span class="operator">&gt;</span>addTechnique(gl3Technique);
    ///
    ///   <span class="comment">// Set the effect on the materials</span>
    ///   material1<span class="operator">-</span><span class="operator">&gt;</span>setEffect(effect);
    ///   material2<span class="operator">-</span><span class="operator">&gt;</span>setEffect(effect);
    ///
    ///   <span class="comment">// Set different parameters on the materials</span>
    ///   <span class="keyword">const</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> parameterName <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"color"</span>);
    ///   material1<span class="operator">-</span><span class="operator">&gt;</span>addParameter(<span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(parameterName<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span>);
    ///   material2<span class="operator">-</span><span class="operator">&gt;</span>addParameter(<span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(parameterName<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QMaterial> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_QMaterial1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns a vector of the material's current parameters</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> Qt3DRender::QMaterial::parameters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#parameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector of the material's current parameters</p></div>
    #[inline(always)]
    pub unsafe fn parameters(&self) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_parameters(
                self as *const crate::QMaterial,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QMaterial::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_qt_metacall(
            self as *const crate::QMaterial as *mut crate::QMaterial,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QMaterial::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_qt_metacast(
            self as *const crate::QMaterial as *mut crate::QMaterial,
            arg1,
        )
    }

    /// <p>Remove a <i>parameter</i> from the material's parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QMaterial::removeParameter(Qt3DRender::QParameter* parameter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#removeParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove a <i>parameter</i> from the material's parameters.</p></div>
    #[inline(always)]
    pub unsafe fn remove_parameter(
        &self,
        parameter: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_removeParameter(
            self as *const crate::QMaterial as *mut crate::QMaterial,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(parameter)
                .as_raw_ptr() as *mut crate::QParameter,
        )
    }

    /// <p>Specifies the effect to be used with the material.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QMaterial::setEffect(Qt3DRender::QEffect* effect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#effect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the effect to be used with the material.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QEffect *</td><td class="memItemRight bottomAlign"><span class="name"><b>effect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEffect</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>effectChanged</b></span>(QEffect *<i>effect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_effect(
        &self,
        effect: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QEffect>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_setEffect(
            self as *const crate::QMaterial as *mut crate::QMaterial,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QEffect>>::cast_into(effect).as_raw_ptr()
                as *mut crate::QEffect,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMaterial::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMaterial::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_memory_barrier {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QMemoryBarrier```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QMemoryBarrier::Operation```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Operation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Operation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Operation(value)
        }
    }

    impl From<Operation> for ::std::os::raw::c_int {
        fn from(value: Operation) -> Self {
            value.0
        }
    }

    impl Operation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Operation {
        /// C++ enum variant: <span style='color: green;'>```None = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const None: crate::q_memory_barrier::Operation = crate::q_memory_barrier::Operation(0);
        /// C++ enum variant: <span style='color: green;'>```VertexAttributeArray = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const VertexAttributeArray: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(1);
        /// C++ enum variant: <span style='color: green;'>```ElementArray = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const ElementArray: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(2);
        /// C++ enum variant: <span style='color: green;'>```Uniform = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Uniform: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(4);
        /// C++ enum variant: <span style='color: green;'>```TextureFetch = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const TextureFetch: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(8);
        /// C++ enum variant: <span style='color: green;'>```ShaderImageAccess = 16```</span>
        #[allow(non_upper_case_globals)]
        pub const ShaderImageAccess: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(16);
        /// C++ enum variant: <span style='color: green;'>```Command = 32```</span>
        #[allow(non_upper_case_globals)]
        pub const Command: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(32);
        /// C++ enum variant: <span style='color: green;'>```PixelBuffer = 64```</span>
        #[allow(non_upper_case_globals)]
        pub const PixelBuffer: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(64);
        /// C++ enum variant: <span style='color: green;'>```TextureUpdate = 128```</span>
        #[allow(non_upper_case_globals)]
        pub const TextureUpdate: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(128);
        /// C++ enum variant: <span style='color: green;'>```BufferUpdate = 256```</span>
        #[allow(non_upper_case_globals)]
        pub const BufferUpdate: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(256);
        /// C++ enum variant: <span style='color: green;'>```FrameBuffer = 512```</span>
        #[allow(non_upper_case_globals)]
        pub const FrameBuffer: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(512);
        /// C++ enum variant: <span style='color: green;'>```TransformFeedback = 1024```</span>
        #[allow(non_upper_case_globals)]
        pub const TransformFeedback: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(1024);
        /// C++ enum variant: <span style='color: green;'>```AtomicCounter = 2048```</span>
        #[allow(non_upper_case_globals)]
        pub const AtomicCounter: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(2048);
        /// C++ enum variant: <span style='color: green;'>```ShaderStorage = 4096```</span>
        #[allow(non_upper_case_globals)]
        pub const ShaderStorage: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(4096);
        /// C++ enum variant: <span style='color: green;'>```QueryBuffer = 8192```</span>
        #[allow(non_upper_case_globals)]
        pub const QueryBuffer: crate::q_memory_barrier::Operation =
            crate::q_memory_barrier::Operation(8192);
        /// C++ enum variant: <span style='color: green;'>```All = -1```</span>
        #[allow(non_upper_case_globals)]
        pub const All: crate::q_memory_barrier::Operation = crate::q_memory_barrier::Operation(-1);
    }

    impl From<crate::q_memory_barrier::Operation>
        for ::qt_core::QFlags<crate::q_memory_barrier::Operation>
    {
        fn from(value: crate::q_memory_barrier::Operation) -> Self {
            Self::from(value.to_int())
        }
    }

    impl<T: Into<::qt_core::QFlags<crate::q_memory_barrier::Operation>>> std::ops::BitOr<T>
        for crate::q_memory_barrier::Operation
    {
        type Output = ::qt_core::QFlags<crate::q_memory_barrier::Operation>;
        fn bitor(self, rhs: T) -> ::qt_core::QFlags<crate::q_memory_barrier::Operation> {
            Into::<::qt_core::QFlags<crate::q_memory_barrier::Operation>>::into(self) | rhs
        }
    }
}
/// <p>Class to emplace a memory barrier</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QMemoryBarrier```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Class to emplace a memory barrier</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">Qt3DRender::QMemoryBarrier</a> FrameGraph node is used to emplace a specific memory barrier at a specific time of the rendering. This is required to properly synchronize drawing and compute commands on the GPU.</p>
/// <p>The barrier defines the ordering of memory operations issued by a prior command. This means that if command1 is manipulating a buffer that is to be used as a vertex attribute buffer in a following command2, then the memory barrier should be placed after command1 and setting the appropriate barrier type for vertex attribute buffer.</p>
/// <p>When a <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">QMemoryBarrier</a> node is found in a FrameGraph branch, the barrier will be enforced prior to any draw or compute command even if these are defined deeper in the branch.</p>
/// <p>For OpenGL rendering, this page gives more info about the <a href="https://www.opengl.org/wiki/Memory_Model">Memory Model</a></p></div>
#[repr(C)]
pub struct QMemoryBarrier {
    _unused: u8,
}
impl QMemoryBarrier {
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#waitOperations">waitOperations</a>().</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QMemoryBarrier::setWaitOperations` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#setWaitOperations">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#waitOperations">waitOperations</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_wait_operations(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setWaitOperations(QFlags< Qt3DRender::QMemoryBarrier::Operation >)\0",
                ),
            )
        }
    }

    /// Returns a built-in Qt signal `Qt3DRender::QMemoryBarrier::waitOperationsChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn wait_operations_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2waitOperationsChanged(QFlags< Qt3DRender::QMemoryBarrier::Operation >)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QMemoryBarrier::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_metaObject(
                self as *const crate::QMemoryBarrier,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QMemoryBarrier.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMemoryBarrier::QMemoryBarrier(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#QMemoryBarrier">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QMemoryBarrier.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QMemoryBarrier> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_QMemoryBarrier(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Class to emplace a memory barrier</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMemoryBarrier::QMemoryBarrier()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Class to emplace a memory barrier</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">Qt3DRender::QMemoryBarrier</a> FrameGraph node is used to emplace a specific memory barrier at a specific time of the rendering. This is required to properly synchronize drawing and compute commands on the GPU.</p>
    /// <p>The barrier defines the ordering of memory operations issued by a prior command. This means that if command1 is manipulating a buffer that is to be used as a vertex attribute buffer in a following command2, then the memory barrier should be placed after command1 and setting the appropriate barrier type for vertex attribute buffer.</p>
    /// <p>When a <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html">QMemoryBarrier</a> node is found in a FrameGraph branch, the barrier will be enforced prior to any draw or compute command even if these are defined deeper in the branch.</p>
    /// <p>For OpenGL rendering, this page gives more info about the <a href="https://www.opengl.org/wiki/Memory_Model">Memory Model</a></p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QMemoryBarrier> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_QMemoryBarrier1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QMemoryBarrier::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_qt_metacall(
            self as *const crate::QMemoryBarrier as *mut crate::QMemoryBarrier,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QMemoryBarrier::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_qt_metacast(
            self as *const crate::QMemoryBarrier as *mut crate::QMemoryBarrier,
            arg1,
        )
    }

    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#waitOperations">waitOperations</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QMemoryBarrier::setWaitOperations(QFlags<Qt3DRender::QMemoryBarrier::Operation> operations)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#setWaitOperations">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#waitOperations">waitOperations</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_wait_operations(
        &self,
        operations: ::qt_core::QFlags<crate::q_memory_barrier::Operation>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_setWaitOperations(
            self as *const crate::QMemoryBarrier as *mut crate::QMemoryBarrier,
            operations.to_int(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMemoryBarrier::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMemoryBarrier::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#setWaitOperations">setWaitOperations</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QFlags<Qt3DRender::QMemoryBarrier::Operation> Qt3DRender::QMemoryBarrier::waitOperations() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#waitOperations">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#setWaitOperations">setWaitOperations</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wait_operations(&self) -> ::qt_core::QFlags<crate::q_memory_barrier::Operation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_waitOperations(
                self as *const crate::QMemoryBarrier,
            )
        };
        ::qt_core::QFlags::from(ffi_result)
    }
}

pub mod q_mesh {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QMesh```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QMesh::Status```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Status(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Status {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Status(value)
        }
    }

    impl From<Status> for ::std::os::raw::c_int {
        fn from(value: Status) -> Self {
            value.0
        }
    }

    impl Status {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Status {
        /// C++ enum variant: <span style='color: green;'>```None = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const None: crate::q_mesh::Status = crate::q_mesh::Status(0);
        /// C++ enum variant: <span style='color: green;'>```Loading = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Loading: crate::q_mesh::Status = crate::q_mesh::Status(1);
        /// C++ enum variant: <span style='color: green;'>```Ready = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Ready: crate::q_mesh::Status = crate::q_mesh::Status(2);
        /// C++ enum variant: <span style='color: green;'>```Error = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const Error: crate::q_mesh::Status = crate::q_mesh::Status(3);
    }
}
/// <p>A custom mesh loader.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QMesh```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A custom mesh loader.</p>
/// <p>Loads mesh data from external files in a variety of formats. <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">Qt3DRender::QMesh</a> loads data into a single mesh.</p>
/// <p>In Qt3D 5.9, <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">QMesh</a> supports the following formats:</p>
/// <ul>
/// <li>Wavefront OBJ</li>
/// <li>Stanford Triangle Format PLY</li>
/// <li>STL (STereoLithography)</li>
/// </ul>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">QMesh</a> will also support the following format if the SDK is installed and the fbx geometry loader plugin is built and found:</p>
/// <ul>
/// <li>Autodesk FBX</li>
/// </ul>
/// <p>If you wish to load an entire scene made of several objects, you should rather use the <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> instead.</p></div>
#[repr(C)]
pub struct QMesh {
    _unused: u8,
}
impl QMesh {
    /// <p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QMesh::setSource` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_source(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSource(QUrl const &)\0"),
            )
        }
    }

    /// <p>Holds the name of the mesh.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QMesh::setMeshName` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#meshName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>meshName</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMeshName</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>meshNameChanged</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_mesh_name(&self) -> ::qt_core::Receiver<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMeshName(QString const &)\0"),
            )
        }
    }

    /// <p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QMesh::sourceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn source_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2sourceChanged(QUrl const &)\0"),
            )
        }
    }

    /// <p>Holds the name of the mesh.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QMesh::meshNameChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#meshName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>meshName</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMeshName</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>meshNameChanged</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mesh_name_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2meshNameChanged(QString const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the name of the mesh.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString Qt3DRender::QMesh::meshName() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#meshName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>meshName</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMeshName</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>meshNameChanged</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn mesh_name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_meshName(
                self as *const crate::QMesh,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QMesh::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_metaObject(
                self as *const crate::QMesh,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QMesh.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMesh::QMesh(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#QMesh">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QMesh.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_QMesh(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A custom mesh loader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMesh::QMesh()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A custom mesh loader.</p>
    /// <p>Loads mesh data from external files in a variety of formats. <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">Qt3DRender::QMesh</a> loads data into a single mesh.</p>
    /// <p>In Qt3D 5.9, <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">QMesh</a> supports the following formats:</p>
    /// <ul>
    /// <li>Wavefront OBJ</li>
    /// <li>Stanford Triangle Format PLY</li>
    /// <li>STL (STereoLithography)</li>
    /// </ul>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">QMesh</a> will also support the following format if the SDK is installed and the fbx geometry loader plugin is built and found:</p>
    /// <ul>
    /// <li>Autodesk FBX</li>
    /// </ul>
    /// <p>If you wish to load an entire scene made of several objects, you should rather use the <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> instead.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QMesh> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_QMesh1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QMesh::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_qt_metacall(
            self as *const crate::QMesh as *mut crate::QMesh,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QMesh::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_qt_metacast(
            self as *const crate::QMesh as *mut crate::QMesh,
            arg1,
        )
    }

    /// <p>Holds the name of the mesh.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QMesh::setMeshName(const QString& meshName)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#meshName-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the name of the mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>meshName</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMeshName</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>meshNameChanged</b></span>(const QString &amp;<i>meshName</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_mesh_name(
        &self,
        mesh_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_setMeshName(
            self as *const crate::QMesh as *mut crate::QMesh,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(mesh_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QMesh::setSource(const QUrl& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_source(
        &self,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_setSource(
            self as *const crate::QMesh as *mut crate::QMesh,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QMesh::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the <i>source</i> url to the file containing the custom mesh.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_source(self as *const crate::QMesh)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the status of the mesh loading.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh::Status Qt3DRender::QMesh::status() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the status of the mesh loading.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QMesh::Status </td><td class="memItemRight bottomAlign"><span class="name"><b>status</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Qt3DRender::QMesh::Status <i>status</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#Status-enum">Qt3DRender::QMesh::Status</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn status(&self) -> crate::q_mesh::Status {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_status(self as *const crate::QMesh)
    }

    /// <p>Holds the status of the mesh loading.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QMesh::statusChanged(Qt3DRender::QMesh::Status status)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the status of the mesh loading.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QMesh::Status </td><td class="memItemRight bottomAlign"><span class="name"><b>status</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Qt3DRender::QMesh::Status <i>status</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html#Status-enum">Qt3DRender::QMesh::Status</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn status_changed(&self, status: crate::q_mesh::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_statusChanged(
            self as *const crate::QMesh as *mut crate::QMesh,
            status,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMesh::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMesh::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Enable multisample antialiasing</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QMultiSampleAntiAliasing```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qmultisampleantialiasing.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable multisample antialiasing</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qmultisampleantialiasing.html">Qt3DRender::QMultiSampleAntiAliasing</a> class enables multisample antialiasing. The render target must have been allocated with multisampling enabled.</p></div>
#[repr(C)]
pub struct QMultiSampleAntiAliasing {
    _unused: u8,
}
impl QMultiSampleAntiAliasing {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QMultiSampleAntiAliasing::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_metaObject(
                self as *const crate::QMultiSampleAntiAliasing,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QMultiSampleAntiAliasing.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMultiSampleAntiAliasing::QMultiSampleAntiAliasing(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmultisampleantialiasing.html#QMultiSampleAntiAliasing">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QMultiSampleAntiAliasing.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_QMultiSampleAntiAliasing(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent).as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Enable multisample antialiasing</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QMultiSampleAntiAliasing::QMultiSampleAntiAliasing()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmultisampleantialiasing.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enable multisample antialiasing</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qmultisampleantialiasing.html">Qt3DRender::QMultiSampleAntiAliasing</a> class enables multisample antialiasing. The render target must have been allocated with multisampling enabled.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_QMultiSampleAntiAliasing1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QMultiSampleAntiAliasing::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_qt_metacall(
            self as *const crate::QMultiSampleAntiAliasing as *mut crate::QMultiSampleAntiAliasing,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QMultiSampleAntiAliasing::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_qt_metacast(
            self as *const crate::QMultiSampleAntiAliasing as *mut crate::QMultiSampleAntiAliasing,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_staticMetaObject(
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMultiSampleAntiAliasing::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QMultiSampleAntiAliasing::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Disable depth write</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QNoDepthMask```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qnodepthmask.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disable depth write</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qnodepthmask.html">Qt3DRender::QNoDepthMask</a> class disables fragment depth write to depth buffer.</p></div>
#[repr(C)]
pub struct QNoDepthMask {
    _unused: u8,
}
impl QNoDepthMask {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QNoDepthMask::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_metaObject(
                self as *const crate::QNoDepthMask,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QNoDepthMask.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QNoDepthMask::QNoDepthMask(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qnodepthmask.html#QNoDepthMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QNoDepthMask.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QNoDepthMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_QNoDepthMask(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Disable depth write</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QNoDepthMask::QNoDepthMask()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qnodepthmask.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Disable depth write</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qnodepthmask.html">Qt3DRender::QNoDepthMask</a> class disables fragment depth write to depth buffer.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QNoDepthMask> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_QNoDepthMask1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QNoDepthMask::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_qt_metacall(
            self as *const crate::QNoDepthMask as *mut crate::QNoDepthMask,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QNoDepthMask::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_qt_metacast(
            self as *const crate::QNoDepthMask as *mut crate::QNoDepthMask,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QNoDepthMask::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QNoDepthMask::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>When a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> node is present in a FrameGraph branch, this prevents the renderer from rendering any primitive.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QNoDraw```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> node is present in a FrameGraph branch, this prevents the renderer from rendering any primitive.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> should be used when the FrameGraph needs to set up some render states or clear some buffers without requiring any mesh to be drawn. It has the same effect as having a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">Qt3DRender::QRenderPassFilter</a> that matches none of available <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> instances of the scene without the overhead cost of actually performing the filtering.</p>
/// <p>When disabled, a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> node won't prevent the scene from being rendered. Toggling the enabled property is therefore a way to make a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> active or inactive.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> is usually used as a child of a Qt3DRendeR::QClearBuffers node to prevent from drawing the scene when there are multiple render passes.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span> <span class="operator">*</span>viewport <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span> <span class="operator">*</span>cameraSelector <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span>(viewport);
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span> <span class="operator">*</span>clearBuffers <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span>(cameraSelector);
///   clearBuffers<span class="operator">-</span><span class="operator">&gt;</span>setBuffers(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span><span class="operator">::</span>ColorDepthBuffer);
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html#QNoDraw">QNoDraw</a></span> <span class="operator">*</span>noDraw <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html#QNoDraw">QNoDraw</a></span>(clearBuffers);
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>mainPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>previewPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///
/// </pre></div>
#[repr(C)]
pub struct QNoDraw {
    _unused: u8,
}
impl QNoDraw {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QNoDraw::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_metaObject(
                self as *const crate::QNoDraw,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QNoDraw.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QNoDraw::QNoDraw(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html#QNoDraw">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QNoDraw.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QNoDraw> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_QNoDraw(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>When a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> node is present in a FrameGraph branch, this prevents the renderer from rendering any primitive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QNoDraw::QNoDraw()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> node is present in a FrameGraph branch, this prevents the renderer from rendering any primitive.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> should be used when the FrameGraph needs to set up some render states or clear some buffers without requiring any mesh to be drawn. It has the same effect as having a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">Qt3DRender::QRenderPassFilter</a> that matches none of available <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> instances of the scene without the overhead cost of actually performing the filtering.</p>
    /// <p>When disabled, a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> node won't prevent the scene from being rendered. Toggling the enabled property is therefore a way to make a <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> active or inactive.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">Qt3DRender::QNoDraw</a> is usually used as a child of a Qt3DRendeR::QClearBuffers node to prevent from drawing the scene when there are multiple render passes.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span> <span class="operator">*</span>viewport <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span> <span class="operator">*</span>cameraSelector <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span>(viewport);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span> <span class="operator">*</span>clearBuffers <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span>(cameraSelector);
    ///   clearBuffers<span class="operator">-</span><span class="operator">&gt;</span>setBuffers(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span><span class="operator">::</span>ColorDepthBuffer);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html#QNoDraw">QNoDraw</a></span> <span class="operator">*</span>noDraw <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html#QNoDraw">QNoDraw</a></span>(clearBuffers);
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>mainPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>previewPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-module.html">Qt3DRender</a></span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QNoDraw> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_QNoDraw1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QNoDraw::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_qt_metacall(
            self as *const crate::QNoDraw as *mut crate::QNoDraw,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QNoDraw::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_qt_metacast(
            self as *const crate::QNoDraw as *mut crate::QNoDraw,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QNoDraw::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QNoDraw::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> class instantiates a component that can be used to interact with a QEntity by a process known as picking.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QObjectPicker```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> class instantiates a component that can be used to interact with a QEntity by a process known as picking.</p>
/// <p>For every combination of viewport and camera, picking casts a ray through the scene to find entities who's bounding volume intersects the ray. The bounding volume is computed using the values in the attribute buffer specified by the boundingVolumePositionAttribute of the geometry.</p>
/// <p>The signals <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#pressed">pressed</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#released">released</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#clicked">clicked</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#moved">moved</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#entered">entered</a>(), and <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#exited">exited</a>() are emitted when the bounding volume defined by the pickAttribute property intersects with a ray.</p>
/// <p>Most signals carry a <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> instance. If QPickingSettings::pickMode() is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickMethod-enum">QPickingSettings::TrianglePicking</a>, the actual type of the pick parameter will be <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">QPickTriangleEvent</a>.</p>
/// <p>Pick queries are performed on mouse press and mouse release. If drag is enabled, queries also happen on each mouse move while any button is pressed. If hover is enabled, queries happen on every mouse move even if no button is pressed.</p>
/// <p><b>Note: </b>Instances of this component shouldn't be shared, not respecting that condition will most likely result in undefined behavior.</p></div>
#[repr(C)]
pub struct QObjectPicker {
    _unused: u8,
}
impl QObjectPicker {
    /// <p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">hoverEnabled</a> Property to <i>hoverEnabled</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QObjectPicker::setHoverEnabled` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setHoverEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">hoverEnabled</a> Property to <i>hoverEnabled</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">hoverEnabled</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isHoverEnabled">isHoverEnabled</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_hover_enabled(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setHoverEnabled(bool)\0"),
            )
        }
    }

    /// <p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">dragEnabled</a> Property to <i>dragEnabled</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QObjectPicker::setDragEnabled` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setDragEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">dragEnabled</a> Property to <i>dragEnabled</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">dragEnabled</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isDragEnabled">isDragEnabled</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_drag_enabled(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDragEnabled(bool)\0"),
            )
        }
    }

    /// <p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse press the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::pressed` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#pressed">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse press the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p></div>
    #[inline(always)]
    pub fn pressed(&self) -> ::qt_core::Signal<(*mut crate::QPickEvent,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2pressed(Qt3DRender::QPickEvent *)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse release the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::released` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#released">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse release the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p></div>
    #[inline(always)]
    pub fn released(&self) -> ::qt_core::Signal<(*mut crate::QPickEvent,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2released(Qt3DRender::QPickEvent *)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse click the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::clicked` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#clicked">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse click the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p></div>
    #[inline(always)]
    pub fn clicked(&self) -> ::qt_core::Signal<(*mut crate::QPickEvent,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2clicked(Qt3DRender::QPickEvent *)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse move with a button pressed the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::moved` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#moved">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on a mouse move with a button pressed the <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> <i>pick</i> contains details of the event.</p></div>
    #[inline(always)]
    pub fn moved(&self) -> ::qt_core::Signal<(*mut crate::QPickEvent,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2moved(Qt3DRender::QPickEvent *)\0",
                ),
            )
        }
    }

    /// <p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on the mouse entering the volume.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::entered` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#entered">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on the mouse entering the volume.</p></div>
    #[inline(always)]
    pub fn entered(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2entered()\0"),
            )
        }
    }

    /// <p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on the ray exiting the volume.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::exited` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#exited">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This signal is emitted when the bounding volume defined by the pickAttribute property intersects with a ray on the ray exiting the volume.</p></div>
    #[inline(always)]
    pub fn exited(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2exited()\0"),
            )
        }
    }

    /// <p>Specifies if hover is enabled</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::hoverEnabledChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if hover is enabled</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isHoverEnabled">isHoverEnabled</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setHoverEnabled">setHoverEnabled</a></b></span>(bool <i>hoverEnabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>hoverEnabledChanged</b></span>(bool <i>hoverEnabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn hover_enabled_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2hoverEnabledChanged(bool)\0"),
            )
        }
    }

    /// <p>Specifies if drag is enabled</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::dragEnabledChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if drag is enabled</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isDragEnabled">isDragEnabled</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setDragEnabled">setDragEnabled</a></b></span>(bool <i>dragEnabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>dragEnabledChanged</b></span>(bool <i>dragEnabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn drag_enabled_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2dragEnabledChanged(bool)\0"),
            )
        }
    }

    /// <p>Specifies if the object picker is currently pressed</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::pressedChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#pressed-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if the object picker is currently pressed</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isPressed</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pressedChanged</b></span>(bool <i>pressed</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn pressed_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2pressedChanged(bool)\0"),
            )
        }
    }

    /// <p>Specifies if the object picker currently contains the mouse</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QObjectPicker::containsMouseChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#containsMouse-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if the object picker currently contains the mouse</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#containsMouse">containsMouse</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>containsMouseChanged</b></span>(bool <i>containsMouse</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn contains_mouse_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2containsMouseChanged(bool)\0"),
            )
        }
    }

    /// <p>Specifies if the object picker currently contains the mouse</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QObjectPicker::containsMouse() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#containsMouse-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if the object picker currently contains the mouse</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#containsMouse">containsMouse</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>containsMouseChanged</b></span>(bool <i>containsMouse</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn contains_mouse(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_containsMouse(
            self as *const crate::QObjectPicker,
        )
    }

    /// <p>Returns true if dragging is enabled</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QObjectPicker::isDragEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isDragEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if dragging is enabled</p>
    /// <p><b>Note:</b> Getter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">dragEnabled</a>. </p></div>
    #[inline(always)]
    pub unsafe fn is_drag_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_isDragEnabled(
            self as *const crate::QObjectPicker,
        )
    }

    /// <p>Returns true if hover enabled</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QObjectPicker::isHoverEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isHoverEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns true if hover enabled</p>
    /// <p><b>Note:</b> Getter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">hoverEnabled</a>. </p></div>
    #[inline(always)]
    pub unsafe fn is_hover_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_isHoverEnabled(
            self as *const crate::QObjectPicker,
        )
    }

    /// <p>Specifies if the object picker is currently pressed</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QObjectPicker::isPressed() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#pressed-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if the object picker is currently pressed</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isPressed</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pressedChanged</b></span>(bool <i>pressed</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_pressed(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_isPressed(
            self as *const crate::QObjectPicker,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QObjectPicker::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_metaObject(
                self as *const crate::QObjectPicker,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QObjectPicker.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QObjectPicker::QObjectPicker(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#QObjectPicker">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QObjectPicker.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QObjectPicker> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_QObjectPicker(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> class instantiates a component that can be used to interact with a QEntity by a process known as picking.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QObjectPicker::QObjectPicker()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> class instantiates a component that can be used to interact with a QEntity by a process known as picking.</p>
    /// <p>For every combination of viewport and camera, picking casts a ray through the scene to find entities who's bounding volume intersects the ray. The bounding volume is computed using the values in the attribute buffer specified by the boundingVolumePositionAttribute of the geometry.</p>
    /// <p>The signals <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#pressed">pressed</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#released">released</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#clicked">clicked</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#moved">moved</a>(), <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#entered">entered</a>(), and <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#exited">exited</a>() are emitted when the bounding volume defined by the pickAttribute property intersects with a ray.</p>
    /// <p>Most signals carry a <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> instance. If QPickingSettings::pickMode() is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickMethod-enum">QPickingSettings::TrianglePicking</a>, the actual type of the pick parameter will be <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">QPickTriangleEvent</a>.</p>
    /// <p>Pick queries are performed on mouse press and mouse release. If drag is enabled, queries also happen on each mouse move while any button is pressed. If hover is enabled, queries happen on every mouse move even if no button is pressed.</p>
    /// <p><b>Note: </b>Instances of this component shouldn't be shared, not respecting that condition will most likely result in undefined behavior.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QObjectPicker> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_QObjectPicker1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The priority to be used when filtering pick results by priority when <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">QPickingSettings::pickResultMode</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">QPickingSettings::NearestPriorityPick</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QObjectPicker::priority() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#priority-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The priority to be used when filtering pick results by priority when <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">QPickingSettings::pickResultMode</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">QPickingSettings::NearestPriorityPick</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>priority</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setPriority">setPriority</a></b></span>(int <i>priority</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>priorityChanged</b></span>(int <i>priority</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn priority(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_priority(
            self as *const crate::QObjectPicker,
        )
    }

    /// <p>The priority to be used when filtering pick results by priority when <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">QPickingSettings::pickResultMode</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">QPickingSettings::NearestPriorityPick</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QObjectPicker::priorityChanged(int priority)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#priority-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The priority to be used when filtering pick results by priority when <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">QPickingSettings::pickResultMode</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">QPickingSettings::NearestPriorityPick</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>priority</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setPriority">setPriority</a></b></span>(int <i>priority</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>priorityChanged</b></span>(int <i>priority</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn priority_changed(&self, priority: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_priorityChanged(
            self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
            priority,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QObjectPicker::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_qt_metacall(
            self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QObjectPicker::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_qt_metacast(
            self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
            arg1,
        )
    }

    /// <p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">dragEnabled</a> Property to <i>dragEnabled</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QObjectPicker::setDragEnabled(bool dragEnabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setDragEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">dragEnabled</a> Property to <i>dragEnabled</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#dragEnabled-prop">dragEnabled</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isDragEnabled">isDragEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_drag_enabled(&self, drag_enabled: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_setDragEnabled(
            self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
            drag_enabled,
        )
    }

    /// <p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">hoverEnabled</a> Property to <i>hoverEnabled</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QObjectPicker::setHoverEnabled(bool hoverEnabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setHoverEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">hoverEnabled</a> Property to <i>hoverEnabled</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#hoverEnabled-prop">hoverEnabled</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#isHoverEnabled">isHoverEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_hover_enabled(&self, hover_enabled: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_setHoverEnabled(
            self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
            hover_enabled,
        )
    }

    /// <p>Sets the picker's priority to <i>priority</i>. This is used when the pick result mode on <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">QPickingSettings</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">QPickingSettings::NearestPriorityPick</a>. Picking results are sorted by highest priority and shortest picking distance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QObjectPicker::setPriority(int priority)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#setPriority">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the picker's priority to <i>priority</i>. This is used when the pick result mode on <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">QPickingSettings</a> is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">QPickingSettings::NearestPriorityPick</a>. Picking results are sorted by highest priority and shortest picking distance.</p>
    /// <p>This function was introduced in  Qt 5.13.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#priority-prop">priority</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html#priority-prop">priority</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_priority(&self, priority: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_setPriority(
            self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
            priority,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QObjectPicker::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QObjectPicker::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> that can be written through a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPaintedTextureImage```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> that can be written through a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html">QPaintedTextureImage</a> provides a way to specify a texture image (and thus an OpenGL texture) through a <a href="http://doc.qt.io/qt-5/qpainter.html">QPainter</a>. The width and height of the texture image can be specified through the width and height or size properties.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html">QPaintedTextureImage</a> must be subclassed and the virtual <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#paint">paint</a>() function implemented. Each time <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#update">update</a>() is called on the <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html">QPaintedTextureImage</a>, the <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#paint">paint</a>() function is invoked and the resulting image is uploaded.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html">QPaintedTextureImage</a> must be attached to some <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a>.</p></div>
#[repr(C)]
pub struct QPaintedTextureImage {
    _unused: u8,
}
impl QPaintedTextureImage {
    /// <p>Sets the width (<i>w</i>) of the texture image. Triggers an update, if the size changes.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPaintedTextureImage::setWidth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the width (<i>w</i>) of the texture image. Triggers an update, if the size changes.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">width</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">width</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_width(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWidth(int)\0"),
            )
        }
    }

    /// <p>Sets the height (<i>h</i>) of the texture image. Triggers an update, if the size changes.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPaintedTextureImage::setHeight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the height (<i>h</i>) of the texture image. Triggers an update, if the size changes.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">height</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">height</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_height(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setHeight(int)\0"),
            )
        }
    }

    /// <p>Sets the width and height of the texture image. Triggers an update, if the <i>size</i> changes.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPaintedTextureImage::setSize` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the width and height of the texture image. Triggers an update, if the <i>size</i> changes.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#size-prop">size</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#size-prop">size</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_size(&self) -> ::qt_core::Receiver<(*const ::qt_core::QSize,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSize(QSize)\0"),
            )
        }
    }

    /// <p>This property holds the width of the texture image. The width must be greater than or equal to 1.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPaintedTextureImage::widthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the width of the texture image. The width must be greater than or equal to 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setWidth">setWidth</a></b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn width_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2widthChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the height of the texture image. The height must be greater than or equal to 1.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPaintedTextureImage::heightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the height of the texture image. The height must be greater than or equal to 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setHeight">setHeight</a></b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn height_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2heightChanged(int)\0"),
            )
        }
    }

    /// <p>This property holds the size of the texture image.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPaintedTextureImage::sizeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#size-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the size of the texture image.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>size</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setSize">setSize</a></b></span>(QSize <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeChanged</b></span>(QSize <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">height</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">width</a>.</p></div>
    #[inline(always)]
    pub fn size_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QSize,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2sizeChanged(QSize)\0"),
            )
        }
    }

    /// <p>This property holds the height of the texture image. The height must be greater than or equal to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QPaintedTextureImage::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the height of the texture image. The height must be greater than or equal to 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setHeight">setHeight</a></b></span>(int <i>h</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_height(
            self as *const crate::QPaintedTextureImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPaintedTextureImage::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_metaObject(
                self as *const crate::QPaintedTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPaintedTextureImage::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_qt_metacall(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPaintedTextureImage::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_qt_metacast(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
            arg1,
        )
    }

    /// <p>Sets the height (<i>h</i>) of the texture image. Triggers an update, if the size changes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPaintedTextureImage::setHeight(int h)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the height (<i>h</i>) of the texture image. Triggers an update, if the size changes.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">height</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_height(&self, h: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_setHeight(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
            h,
        )
    }

    /// <p>Sets the width and height of the texture image. Triggers an update, if the <i>size</i> changes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPaintedTextureImage::setSize(QSize size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the width and height of the texture image. Triggers an update, if the <i>size</i> changes.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#size-prop">size</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#size-prop">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_size(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_setSize(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr(),
        )
    }

    /// <p>Sets the width (<i>w</i>) of the texture image. Triggers an update, if the size changes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPaintedTextureImage::setWidth(int w)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the width (<i>w</i>) of the texture image. Triggers an update, if the size changes.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">width</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&self, w: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_setWidth(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
            w,
        )
    }

    /// <p>This property holds the size of the texture image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize Qt3DRender::QPaintedTextureImage::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#size-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the size of the texture image.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>size</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setSize">setSize</a></b></span>(QSize <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeChanged</b></span>(QSize <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">height</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">width</a>.</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_size(
                self as *const crate::QPaintedTextureImage,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPaintedTextureImage::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPaintedTextureImage::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Schedules the painted texture's <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#paint">paint</a>() function to be called, which in turn uploads the new image to the GPU. Parameter <i>rect</i> is currently unused.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QPaintedTextureImage::update(const QRect& rect = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#update">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Schedules the painted texture's <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#paint">paint</a>() function to be called, which in turn uploads the new image to the GPU. Parameter <i>rect</i> is currently unused.</p></div>
    #[inline(always)]
    pub unsafe fn update_1a(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_update(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect).as_raw_ptr(),
        )
    }

    /// <p>Schedules the painted texture's <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#paint">paint</a>() function to be called, which in turn uploads the new image to the GPU. Parameter <i>rect</i> is currently unused.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QPaintedTextureImage::update()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#update">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Schedules the painted texture's <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#paint">paint</a>() function to be called, which in turn uploads the new image to the GPU. Parameter <i>rect</i> is currently unused.</p></div>
    #[inline(always)]
    pub unsafe fn update_0a(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_update1(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
        )
    }

    /// <p>This property holds the width of the texture image. The width must be greater than or equal to 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QPaintedTextureImage::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the width of the texture image. The width must be greater than or equal to 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setWidth">setWidth</a></b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>w</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_width(
            self as *const crate::QPaintedTextureImage,
        )
    }
}

/// <p>Provides storage for a name and value pair. This maps to a shader uniform.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QParameter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides storage for a name and value pair. This maps to a shader uniform.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> can be referenced by a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a>. At runtime, depending on which shader is selected for a given step of the rendering, the value contained in a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> will be converted and uploaded if the shader contains a uniform with a name matching that of the <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a>.</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>();
///   param<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseColor"</span>));
///   param<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
///
///   <span class="comment">// Alternatively you can create and set a QParameter this way</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param2 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseColor"</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
///
///   <span class="comment">// Such QParameters will work with the following GLSL uniform shader declarations</span>
///   <span class="comment">// uniform vec4 diffuseColor;</span>
///   <span class="comment">// uniform vec3 diffuseColor;</span>
///   <span class="comment">// uniform vec2 diffuseColor;</span>
///   <span class="comment">// uniform float diffuseColor;</span>
///
/// </pre>
/// <p><b>Note: </b>some care must be taken to ensure the value wrapped by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> can actually be converted to what the real uniform expect. Giving a value stored as an int where the actual shader uniform is of type float could result in undefined behaviors.</p><p><b>Note: </b>when the targeted uniform is an array, the name should be the name of the uniform with [0] appended to it.</p><pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvariant.html#QVariantList-typedef">QVariantList</a></span> values <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvariant.html#QVariantList-typedef">QVariantList</a></span>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">3.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">4.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">883.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1340.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1584.0f</span>;
///
///   param<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseValues[0]"</span>));
///   param<span class="operator">-</span><span class="operator">&gt;</span>setValue(values);
///
///   <span class="comment">// Matching GLSL shader uniform  declaration</span>
///   <span class="comment">// uniform float diffuseValues[8];</span>
///
/// </pre>
/// <p>When it comes to texture support, the <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> value should be set to the appropriate <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> subclass that matches the sampler type of the shader uniform.</p>
/// <pre class="cpp">
///
///   QTexture2D <span class="operator">*</span>texture <span class="operator">=</span> <span class="keyword">new</span> QTexture2D();
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>();
///   param<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseTexture"</span>));
///   param<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></span><span class="operator">::</span>fromValue(texture));
///
///   <span class="comment">// Works with the following GLSL uniform shader declaration</span>
///   <span class="comment">// uniform sampler2D diffuseTexture</span>
///
/// </pre></div>
#[repr(C)]
pub struct QParameter {
    _unused: u8,
}
impl QParameter {
    /// <p>Specifies the name of the parameter</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QParameter::setName` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the name of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_name(&self) -> ::qt_core::Receiver<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setName(QString const &)\0"),
            )
        }
    }

    /// <p>Specifies the value of the parameter</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QParameter::setValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the value of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>dv</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_value(&self) -> ::qt_core::Receiver<(*const ::qt_core::QVariant,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setValue(QVariant const &)\0"),
            )
        }
    }

    /// <p>Specifies the value of the parameter</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QParameter::valueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the value of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>dv</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn value_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QVariant,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2valueChanged(QVariant const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the name of the parameter</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QParameter::nameChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the name of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn name_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2nameChanged(QString const &)\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QParameter::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_metaObject(
                self as *const crate::QParameter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Specifies the name of the parameter</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString Qt3DRender::QParameter::name() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the name of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn name(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_name(
                self as *const crate::QParameter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QParameter::QParameter(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_node(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_QParameter(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Default constructs an instance of QParameter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QParameter::QParameter(const QString& name, const QVariant& value, Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QParameter.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_variant_q_node(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_QParameter1(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Default constructs an instance of QParameter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QParameter::QParameter(const QString& name, Qt3DRender::QAbstractTexture* texture, Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QParameter.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_abstract_texture_q_node(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        texture: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_QParameter2(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(texture)
                    .as_raw_ptr() as *mut crate::QAbstractTexture,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides storage for a name and value pair. This maps to a shader uniform.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QParameter::QParameter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides storage for a name and value pair. This maps to a shader uniform.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> can be referenced by a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a>. At runtime, depending on which shader is selected for a given step of the rendering, the value contained in a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> will be converted and uploaded if the shader contains a uniform with a name matching that of the <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a>.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>();
    ///   param<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseColor"</span>));
    ///   param<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
    ///
    ///   <span class="comment">// Alternatively you can create and set a QParameter this way</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param2 <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseColor"</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
    ///
    ///   <span class="comment">// Such QParameters will work with the following GLSL uniform shader declarations</span>
    ///   <span class="comment">// uniform vec4 diffuseColor;</span>
    ///   <span class="comment">// uniform vec3 diffuseColor;</span>
    ///   <span class="comment">// uniform vec2 diffuseColor;</span>
    ///   <span class="comment">// uniform float diffuseColor;</span>
    ///
    /// </pre>
    /// <p><b>Note: </b>some care must be taken to ensure the value wrapped by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> can actually be converted to what the real uniform expect. Giving a value stored as an int where the actual shader uniform is of type float could result in undefined behaviors.</p><p><b>Note: </b>when the targeted uniform is an array, the name should be the name of the uniform with [0] appended to it.</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvariant.html#QVariantList-typedef">QVariantList</a></span> values <span class="operator">=</span> <span class="type"><a href="http://doc.qt.io/qt-5/qvariant.html#QVariantList-typedef">QVariantList</a></span>() <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">3.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">4.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">883.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1340.0f</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1584.0f</span>;
    ///
    ///   param<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseValues[0]"</span>));
    ///   param<span class="operator">-</span><span class="operator">&gt;</span>setValue(values);
    ///
    ///   <span class="comment">// Matching GLSL shader uniform  declaration</span>
    ///   <span class="comment">// uniform float diffuseValues[8];</span>
    ///
    /// </pre>
    /// <p>When it comes to texture support, the <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> value should be set to the appropriate <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> subclass that matches the sampler type of the shader uniform.</p>
    /// <pre class="cpp">
    ///
    ///   QTexture2D <span class="operator">*</span>texture <span class="operator">=</span> <span class="keyword">new</span> QTexture2D();
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span> <span class="operator">*</span>param <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter">QParameter</a></span>();
    ///   param<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"diffuseTexture"</span>));
    ///   param<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a></span><span class="operator">::</span>fromValue(texture));
    ///
    ///   <span class="comment">// Works with the following GLSL uniform shader declaration</span>
    ///   <span class="comment">// uniform sampler2D diffuseTexture</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::QParameter> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_QParameter3() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Default constructs an instance of QParameter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QParameter::QParameter(const QString& name, const QVariant& value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QParameter.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_variant(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        value: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) -> ::qt_core::QBox<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_QParameter5(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(value)
                    .as_raw_ptr(),
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Default constructs an instance of QParameter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QParameter::QParameter(const QString& name, Qt3DRender::QAbstractTexture* texture)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#QParameter-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QParameter.</p></div>
    #[inline(always)]
    pub unsafe fn from_q_string_q_abstract_texture(
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        texture: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
    ) -> ::qt_core::QBox<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_QParameter6(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(texture)
                    .as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QParameter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_qt_metacall(
            self as *const crate::QParameter as *mut crate::QParameter,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QParameter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_qt_metacast(
            self as *const crate::QParameter as *mut crate::QParameter,
            arg1,
        )
    }

    /// <p>Specifies the name of the parameter</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QParameter::setName(const QString& name)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#name-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the name of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setName</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nameChanged</b></span>(const QString &amp;<i>name</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_name(
        &self,
        name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_setName(
            self as *const crate::QParameter as *mut crate::QParameter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(name)
                .as_raw_ptr(),
        )
    }

    /// <p>Specifies the value of the parameter</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QParameter::setValue(const QVariant& dv)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the value of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>dv</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_value(
        &self,
        dv: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_setValue(
            self as *const crate::QParameter as *mut crate::QParameter,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(dv)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QParameter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QParameter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the value of the parameter</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant Qt3DRender::QParameter::value() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the value of the parameter</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(const QVariant &amp;<i>dv</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(const QVariant &amp;<i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn value(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_value(
                self as *const crate::QParameter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_pick_event {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QPickEvent```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QPickEvent::Buttons```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Buttons(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Buttons {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Buttons(value)
        }
    }

    impl From<Buttons> for ::std::os::raw::c_int {
        fn from(value: Buttons) -> Self {
            value.0
        }
    }

    impl Buttons {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Buttons {
        /// C++ enum variant: <span style='color: green;'>```LeftButton = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const LeftButton: crate::q_pick_event::Buttons = crate::q_pick_event::Buttons(1);
        /// C++ enum variant: <span style='color: green;'>```RightButton = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const RightButton: crate::q_pick_event::Buttons = crate::q_pick_event::Buttons(2);
        /// C++ enum variant: <span style='color: green;'>```MiddleButton = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const MiddleButton: crate::q_pick_event::Buttons = crate::q_pick_event::Buttons(4);
        /// C++ enum variant: <span style='color: green;'>```BackButton = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const BackButton: crate::q_pick_event::Buttons = crate::q_pick_event::Buttons(8);
        /// C++ enum variant: <span style='color: green;'>```NoButton = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoButton: crate::q_pick_event::Buttons = crate::q_pick_event::Buttons(0);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QPickEvent::Modifiers```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Modifiers(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Modifiers {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Modifiers(value)
        }
    }

    impl From<Modifiers> for ::std::os::raw::c_int {
        fn from(value: Modifiers) -> Self {
            value.0
        }
    }

    impl Modifiers {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Modifiers {
        /// C++ enum variant: <span style='color: green;'>```NoModifier = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoModifier: crate::q_pick_event::Modifiers = crate::q_pick_event::Modifiers(0);
        /// C++ enum variant: <span style='color: green;'>```ShiftModifier = 33554432```</span>
        #[allow(non_upper_case_globals)]
        pub const ShiftModifier: crate::q_pick_event::Modifiers =
            crate::q_pick_event::Modifiers(33554432);
        /// C++ enum variant: <span style='color: green;'>```ControlModifier = 67108864```</span>
        #[allow(non_upper_case_globals)]
        pub const ControlModifier: crate::q_pick_event::Modifiers =
            crate::q_pick_event::Modifiers(67108864);
        /// C++ enum variant: <span style='color: green;'>```AltModifier = 134217728```</span>
        #[allow(non_upper_case_globals)]
        pub const AltModifier: crate::q_pick_event::Modifiers =
            crate::q_pick_event::Modifiers(134217728);
        /// C++ enum variant: <span style='color: green;'>```MetaModifier = 268435456```</span>
        #[allow(non_upper_case_globals)]
        pub const MetaModifier: crate::q_pick_event::Modifiers =
            crate::q_pick_event::Modifiers(268435456);
        /// C++ enum variant: <span style='color: green;'>```KeypadModifier = 536870912```</span>
        #[allow(non_upper_case_globals)]
        pub const KeypadModifier: crate::q_pick_event::Modifiers =
            crate::q_pick_event::Modifiers(536870912);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> class holds information when an object is picked</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPickEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> class holds information when an object is picked</p>
/// <p>This is received as a parameter in most of the <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> component signals when picking succeeds.</p></div>
#[repr(C)]
pub struct QPickEvent {
    _unused: u8,
}
impl QPickEvent {
    /// <p>QPickEvent::setAccepted set if the event has been accepted to <i>accepted</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPickEvent::setAccepted` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#setAccepted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>QPickEvent::setAccepted set if the event has been accepted to <i>accepted</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#accepted-prop">accepted</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#isAccepted">isAccepted</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_accepted(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setAccepted(bool)\0"),
            )
        }
    }

    /// <p>Specifies if event has been accepted</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPickEvent::acceptedChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#accepted-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies if event has been accepted</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#isAccepted">isAccepted</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#setAccepted">setAccepted</a></b></span>(bool <i>accepted</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>acceptedChanged</b></span>(bool <i>accepted</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn accepted_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2acceptedChanged(bool)\0"),
            )
        }
    }

    /// <p>Specifies mouse button that caused the event</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent::Buttons Qt3DRender::QPickEvent::button() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#button-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies mouse button that caused the event</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Buttons </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#button">button</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn button(&self) -> crate::q_pick_event::Buttons {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_button(
            self as *const crate::QPickEvent,
        )
    }

    /// <p>Specifies state of the mouse buttons for the event</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QPickEvent::buttons() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#buttons-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies state of the mouse buttons for the event</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#buttons">buttons</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn buttons(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_buttons(
            self as *const crate::QPickEvent,
        )
    }

    /// <p>Specifies the distance of the hit to the camera</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPickEvent::distance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#distance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the distance of the hit to the camera</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#distance">distance</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn distance(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_distance(
            self as *const crate::QPickEvent,
        )
    }

    /// <p>The entity that the picked geometry belongs to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QEntity* Qt3DRender::QPickEvent::entity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#entity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The entity that the picked geometry belongs to.</p>
    /// <p>If the object picker is not attached to a leaf node in the scene graph, this is useful to find which child entity was actually picked.</p>
    /// <p>This property was introduced in  Qt 5.14.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>entity</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn entity(&self) -> ::qt_core::QPtr<::qt_3d_core::QEntity> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_entity(
                self as *const crate::QPickEvent,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>QPickEvent::isAccepted Returns true if the event has been accepted</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QPickEvent::isAccepted() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#isAccepted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>QPickEvent::isAccepted Returns true if the event has been accepted</p>
    /// <p><b>Note:</b> Getter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#accepted-prop">accepted</a>. </p></div>
    #[inline(always)]
    pub unsafe fn is_accepted(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_isAccepted(
            self as *const crate::QPickEvent,
        )
    }

    /// <p>Specifies the coordinates of the hit in the local coordinate system of the picked entity</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QPickEvent::localIntersection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#localIntersection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the coordinates of the hit in the local coordinate system of the picked entity</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#localIntersection">localIntersection</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn local_intersection(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_localIntersection(
                self as *const crate::QPickEvent,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPickEvent::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_metaObject(
                self as *const crate::QPickEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Specifies state of the mouse buttons for the event</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QPickEvent::modifiers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#modifiers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies state of the mouse buttons for the event</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#modifiers">modifiers</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn modifiers(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_modifiers(
            self as *const crate::QPickEvent,
        )
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickEvent::QPickEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#QPickEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPickEvent> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_QPickEvent() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> with the given parameters: <i>position</i>, <i>intersection</i>, <i>localIntersection</i> and <i>distance</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickEvent::QPickEvent(const QPointF& position, const QVector3D& worldIntersection, const QVector3D& localIntersection, float distance)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#QPickEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> with the given parameters: <i>position</i>, <i>intersection</i>, <i>localIntersection</i> and <i>distance</i></p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        world_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        local_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        distance: ::std::os::raw::c_float,
    ) -> ::qt_core::QBox<crate::QPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_QPickEvent1(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(position)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    world_intersection,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    local_intersection,
                )
                .as_raw_ptr(),
                distance,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> with the given parameters: <i>position</i>, <i>worldIntersection</i>, <i>localIntersection</i>, <i>distance</i>, <i>button</i>, <i>buttons</i> and <i>modifiers</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickEvent::QPickEvent(const QPointF& position, const QVector3D& worldIntersection, const QVector3D& localIntersection, float distance, Qt3DRender::QPickEvent::Buttons button, int buttons, int modifiers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#QPickEvent-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> with the given parameters: <i>position</i>, <i>worldIntersection</i>, <i>localIntersection</i>, <i>distance</i>, <i>button</i>, <i>buttons</i> and <i>modifiers</i></p></div>
    #[inline(always)]
    pub unsafe fn new_7a(
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        world_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        local_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        distance: ::std::os::raw::c_float,
        button: crate::q_pick_event::Buttons,
        buttons: ::std::os::raw::c_int,
        modifiers: ::std::os::raw::c_int,
    ) -> ::qt_core::QBox<crate::QPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_QPickEvent2(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(position)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    world_intersection,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    local_intersection,
                )
                .as_raw_ptr(),
                distance,
                button,
                buttons,
                modifiers,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Specifies the mouse position with respect to the render area (window or quick item)</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPointF Qt3DRender::QPickEvent::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#position-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the mouse position with respect to the render area (window or quick item)</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QPointF </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#position">position</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn position(&self) -> ::cpp_core::CppBox<::qt_core::QPointF> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_position(
                self as *const crate::QPickEvent,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPickEvent::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_qt_metacall(
            self as *const crate::QPickEvent as *mut crate::QPickEvent,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPickEvent::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_qt_metacast(
            self as *const crate::QPickEvent as *mut crate::QPickEvent,
            arg1,
        )
    }

    /// <p>QPickEvent::setAccepted set if the event has been accepted to <i>accepted</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPickEvent::setAccepted(bool accepted)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#setAccepted">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>QPickEvent::setAccepted set if the event has been accepted to <i>accepted</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#accepted-prop">accepted</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#isAccepted">isAccepted</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_accepted(&self, accepted: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_setAccepted(
            self as *const crate::QPickEvent as *mut crate::QPickEvent,
            accepted,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickEvent::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickEvent::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The viewport in which this event originated. A null value means the event originated from a frame graph branch without a <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a>. If a frame graph branch has a Viewport inside a Viewport the property will contain the leaf viewport.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QViewport* Qt3DRender::QPickEvent::viewport() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#viewport-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The viewport in which this event originated. A null value means the event originated from a frame graph branch without a <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a>. If a frame graph branch has a Viewport inside a Viewport the property will contain the leaf viewport.</p>
    /// <p>This property was introduced in  Qt 5.14.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QViewport *</td><td class="memItemRight bottomAlign"><span class="name"><b>viewport</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn viewport(&self) -> ::qt_core::QPtr<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_viewport(
                self as *const crate::QPickEvent,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Specifies the coordinates of the hit in world coordinate system</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QPickEvent::worldIntersection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#worldIntersection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the coordinates of the hit in world coordinate system</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html#worldIntersection">worldIntersection</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn world_intersection(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_worldIntersection(
                self as *const crate::QPickEvent,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_picking_settings {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QPickingSettings```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QPickingSettings::PickMethod```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PickMethod(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PickMethod {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PickMethod(value)
        }
    }

    impl From<PickMethod> for ::std::os::raw::c_int {
        fn from(value: PickMethod) -> Self {
            value.0
        }
    }

    impl PickMethod {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PickMethod {
        /// C++ enum variant: <span style='color: green;'>```BoundingVolumePicking = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const BoundingVolumePicking: crate::q_picking_settings::PickMethod =
            crate::q_picking_settings::PickMethod(0);
        /// C++ enum variant: <span style='color: green;'>```TrianglePicking = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const TrianglePicking: crate::q_picking_settings::PickMethod =
            crate::q_picking_settings::PickMethod(1);
        /// C++ enum variant: <span style='color: green;'>```LinePicking = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const LinePicking: crate::q_picking_settings::PickMethod =
            crate::q_picking_settings::PickMethod(2);
        /// C++ enum variant: <span style='color: green;'>```PointPicking = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const PointPicking: crate::q_picking_settings::PickMethod =
            crate::q_picking_settings::PickMethod(4);
        /// C++ enum variant: <span style='color: green;'>```PrimitivePicking = 7```</span>
        #[allow(non_upper_case_globals)]
        pub const PrimitivePicking: crate::q_picking_settings::PickMethod =
            crate::q_picking_settings::PickMethod(7);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QPickingSettings::PickResultMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct PickResultMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for PickResultMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            PickResultMode(value)
        }
    }

    impl From<PickResultMode> for ::std::os::raw::c_int {
        fn from(value: PickResultMode) -> Self {
            value.0
        }
    }

    impl PickResultMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl PickResultMode {
        /// C++ enum variant: <span style='color: green;'>```NearestPick = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NearestPick: crate::q_picking_settings::PickResultMode =
            crate::q_picking_settings::PickResultMode(0);
        /// C++ enum variant: <span style='color: green;'>```AllPicks = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const AllPicks: crate::q_picking_settings::PickResultMode =
            crate::q_picking_settings::PickResultMode(1);
        /// C++ enum variant: <span style='color: green;'>```NearestPriorityPick = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const NearestPriorityPick: crate::q_picking_settings::PickResultMode =
            crate::q_picking_settings::PickResultMode(2);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QPickingSettings::FaceOrientationPickingMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FaceOrientationPickingMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FaceOrientationPickingMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FaceOrientationPickingMode(value)
        }
    }

    impl From<FaceOrientationPickingMode> for ::std::os::raw::c_int {
        fn from(value: FaceOrientationPickingMode) -> Self {
            value.0
        }
    }

    impl FaceOrientationPickingMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FaceOrientationPickingMode {
        /// C++ enum variant: <span style='color: green;'>```FrontFace = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const FrontFace: crate::q_picking_settings::FaceOrientationPickingMode =
            crate::q_picking_settings::FaceOrientationPickingMode(1);
        /// C++ enum variant: <span style='color: green;'>```BackFace = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const BackFace: crate::q_picking_settings::FaceOrientationPickingMode =
            crate::q_picking_settings::FaceOrientationPickingMode(2);
        /// C++ enum variant: <span style='color: green;'>```FrontAndBackFace = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const FrontAndBackFace: crate::q_picking_settings::FaceOrientationPickingMode =
            crate::q_picking_settings::FaceOrientationPickingMode(3);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">QPickingSettings</a> class specifies how entity picking is handled.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPickingSettings```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">QPickingSettings</a> class specifies how entity picking is handled.</p>
/// <p>The picking settings determine how the entity picking is handled. For more details about entity picking, see <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> component documentation.</p>
/// <p>Picking is triggered by mouse events. It will cast a ray through the scene and look for geometry intersecting the ray.</p></div>
#[repr(C)]
pub struct QPickingSettings {
    _unused: u8,
}
impl QPickingSettings {
    /// <p>Holds the current pick method.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPickingSettings::setPickMethod` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickMethod-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick method.</p>
    /// <p>By default, for performance reasons, ray casting will use bounding volume picking. This may however lead to unexpected results if a small object is englobed in the bounding sphere of a large object behind it.</p>
    /// <p>Triangle picking will produce exact results but is computationally more expensive.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickMethod </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethod</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickMethod</b></span>(PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethodChanged</b></span>(QPickingSettings::PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_pick_method(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_picking_settings::PickMethod,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setPickMethod(Qt3DRender::QPickingSettings::PickMethod)\0",
                ),
            )
        }
    }

    /// <p>Holds the current pick results mode.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPickingSettings::setPickResultMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick results mode.</p>
    /// <p>By default, pick results will only be produced for the entity closest to the camera.</p>
    /// <p>When setting the pick method to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">AllPicks</a>, events will be triggered for all the entities with a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> along the ray.</p>
    /// <p>If a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> is assigned to an entity with multiple children, an event will be triggered for each child entity that intersects the ray.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickResultMode </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickResultMode</b></span>(PickResultMode <i>pickResultMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultModeChanged</b></span>(QPickingSettings::PickResultMode <i>pickResult</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_pick_result_mode(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_picking_settings::PickResultMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setPickResultMode(Qt3DRender::QPickingSettings::PickResultMode)\0",
                ),
            )
        }
    }

    /// <p>Specifies how face orientation affects triangle picking</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPickingSettings::setFaceOrientationPickingMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#faceOrientationPickingMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies how face orientation affects triangle picking</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> FaceOrientationPickingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceOrientationPickingMode</b></span>(FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingModeChanged</b></span>(QPickingSettings::FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_face_orientation_picking_mode(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_picking_settings::FaceOrientationPickingMode,)> {
        unsafe {
            ::qt_core::Receiver::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode)\0"))
        }
    }

    /// <p>Holds the current pick method.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPickingSettings::pickMethodChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickMethod-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick method.</p>
    /// <p>By default, for performance reasons, ray casting will use bounding volume picking. This may however lead to unexpected results if a small object is englobed in the bounding sphere of a large object behind it.</p>
    /// <p>Triangle picking will produce exact results but is computationally more expensive.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickMethod </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethod</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickMethod</b></span>(PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethodChanged</b></span>(QPickingSettings::PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn pick_method_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_picking_settings::PickMethod,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2pickMethodChanged(Qt3DRender::QPickingSettings::PickMethod)\0",
                ),
            )
        }
    }

    /// <p>Holds the current pick results mode.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPickingSettings::pickResultModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick results mode.</p>
    /// <p>By default, pick results will only be produced for the entity closest to the camera.</p>
    /// <p>When setting the pick method to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">AllPicks</a>, events will be triggered for all the entities with a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> along the ray.</p>
    /// <p>If a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> is assigned to an entity with multiple children, an event will be triggered for each child entity that intersects the ray.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickResultMode </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickResultMode</b></span>(PickResultMode <i>pickResultMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultModeChanged</b></span>(QPickingSettings::PickResultMode <i>pickResult</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn pick_result_mode_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_picking_settings::PickResultMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2pickResultModeChanged(Qt3DRender::QPickingSettings::PickResultMode)\0",
                ),
            )
        }
    }

    /// <p>Specifies how face orientation affects triangle picking</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPickingSettings::faceOrientationPickingModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#faceOrientationPickingMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies how face orientation affects triangle picking</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> FaceOrientationPickingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceOrientationPickingMode</b></span>(FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingModeChanged</b></span>(QPickingSettings::FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn face_orientation_picking_mode_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_picking_settings::FaceOrientationPickingMode,)> {
        unsafe {
            ::qt_core::Signal::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2faceOrientationPickingModeChanged(Qt3DRender::QPickingSettings::FaceOrientationPickingMode)\0"))
        }
    }

    /// <p>Specifies how face orientation affects triangle picking</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings::FaceOrientationPickingMode Qt3DRender::QPickingSettings::faceOrientationPickingMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#faceOrientationPickingMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies how face orientation affects triangle picking</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> FaceOrientationPickingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceOrientationPickingMode</b></span>(FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingModeChanged</b></span>(QPickingSettings::FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn face_orientation_picking_mode(
        &self,
    ) -> crate::q_picking_settings::FaceOrientationPickingMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_faceOrientationPickingMode(
            self as *const crate::QPickingSettings,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPickingSettings::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_metaObject(
                self as *const crate::QPickingSettings,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QPickingSettings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickingSettings::QPickingSettings(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#QPickingSettings">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QPickingSettings.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QPickingSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_QPickingSettings(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">QPickingSettings</a> class specifies how entity picking is handled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickingSettings::QPickingSettings()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">QPickingSettings</a> class specifies how entity picking is handled.</p>
    /// <p>The picking settings determine how the entity picking is handled. For more details about entity picking, see <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> component documentation.</p>
    /// <p>Picking is triggered by mouse events. It will cast a ray through the scene and look for geometry intersecting the ray.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPickingSettings> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_QPickingSettings1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Holds the current pick method.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings::PickMethod Qt3DRender::QPickingSettings::pickMethod() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickMethod-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick method.</p>
    /// <p>By default, for performance reasons, ray casting will use bounding volume picking. This may however lead to unexpected results if a small object is englobed in the bounding sphere of a large object behind it.</p>
    /// <p>Triangle picking will produce exact results but is computationally more expensive.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickMethod </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethod</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickMethod</b></span>(PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethodChanged</b></span>(QPickingSettings::PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn pick_method(&self) -> crate::q_picking_settings::PickMethod {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_pickMethod(
            self as *const crate::QPickingSettings,
        )
    }

    /// <p>Holds the current pick results mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings::PickResultMode Qt3DRender::QPickingSettings::pickResultMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick results mode.</p>
    /// <p>By default, pick results will only be produced for the entity closest to the camera.</p>
    /// <p>When setting the pick method to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">AllPicks</a>, events will be triggered for all the entities with a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> along the ray.</p>
    /// <p>If a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> is assigned to an entity with multiple children, an event will be triggered for each child entity that intersects the ray.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickResultMode </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickResultMode</b></span>(PickResultMode <i>pickResultMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultModeChanged</b></span>(QPickingSettings::PickResultMode <i>pickResult</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn pick_result_mode(&self) -> crate::q_picking_settings::PickResultMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_pickResultMode(
            self as *const crate::QPickingSettings,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPickingSettings::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_qt_metacall(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPickingSettings::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_qt_metacast(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
            arg1,
        )
    }

    /// <p>Specifies how face orientation affects triangle picking</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPickingSettings::setFaceOrientationPickingMode(Qt3DRender::QPickingSettings::FaceOrientationPickingMode faceOrientationPickingMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#faceOrientationPickingMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies how face orientation affects triangle picking</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> FaceOrientationPickingMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceOrientationPickingMode</b></span>(FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceOrientationPickingModeChanged</b></span>(QPickingSettings::FaceOrientationPickingMode <i>faceOrientationPickingMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_face_orientation_picking_mode(
        &self,
        face_orientation_picking_mode: crate::q_picking_settings::FaceOrientationPickingMode,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_setFaceOrientationPickingMode(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
            face_orientation_picking_mode,
        )
    }

    /// <p>Holds the current pick method.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPickingSettings::setPickMethod(Qt3DRender::QPickingSettings::PickMethod pickMethod)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickMethod-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick method.</p>
    /// <p>By default, for performance reasons, ray casting will use bounding volume picking. This may however lead to unexpected results if a small object is englobed in the bounding sphere of a large object behind it.</p>
    /// <p>Triangle picking will produce exact results but is computationally more expensive.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickMethod </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethod</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickMethod</b></span>(PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickMethodChanged</b></span>(QPickingSettings::PickMethod <i>pickMethod</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_pick_method(&self, pick_method: crate::q_picking_settings::PickMethod) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_setPickMethod(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
            pick_method,
        )
    }

    /// <p>Holds the current pick results mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPickingSettings::setPickResultMode(Qt3DRender::QPickingSettings::PickResultMode pickResultMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#pickResultMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick results mode.</p>
    /// <p>By default, pick results will only be produced for the entity closest to the camera.</p>
    /// <p>When setting the pick method to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickResultMode-enum">AllPicks</a>, events will be triggered for all the entities with a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> along the ray.</p>
    /// <p>If a <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> is assigned to an entity with multiple children, an event will be triggered for each child entity that intersects the ray.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> PickResultMode </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPickResultMode</b></span>(PickResultMode <i>pickResultMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>pickResultModeChanged</b></span>(QPickingSettings::PickResultMode <i>pickResult</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_pick_result_mode(
        &self,
        pick_result_mode: crate::q_picking_settings::PickResultMode,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_setPickResultMode(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
            pick_result_mode,
        )
    }

    /// <p>Sets the threshold used for line and point picking to <i>worldSpaceTolerance</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QPickingSettings::setWorldSpaceTolerance(float worldSpaceTolerance)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#setWorldSpaceTolerance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the threshold used for line and point picking to <i>worldSpaceTolerance</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#worldSpaceTolerance-prop">worldSpaceTolerance</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#worldSpaceTolerance">worldSpaceTolerance</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_world_space_tolerance(&self, world_space_tolerance: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_setWorldSpaceTolerance(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
            world_space_tolerance,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickingSettings::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickingSettings::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the threshold, in model space coordinates, used to evaluate line and point picking.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPickingSettings::worldSpaceTolerance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#worldSpaceTolerance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the threshold, in model space coordinates, used to evaluate line and point picking.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#worldSpaceTolerance">worldSpaceTolerance</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#setWorldSpaceTolerance">setWorldSpaceTolerance</a></b></span>(float <i>worldSpaceTolerance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>worldSpaceToleranceChanged</b></span>(float <i>worldSpaceTolerance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn world_space_tolerance(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_worldSpaceTolerance(
            self as *const crate::QPickingSettings,
        )
    }

    /// <p>Holds the threshold, in model space coordinates, used to evaluate line and point picking.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QPickingSettings::worldSpaceToleranceChanged(float worldSpaceTolerance)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#worldSpaceTolerance-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the threshold, in model space coordinates, used to evaluate line and point picking.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#worldSpaceTolerance">worldSpaceTolerance</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#setWorldSpaceTolerance">setWorldSpaceTolerance</a></b></span>(float <i>worldSpaceTolerance</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>worldSpaceToleranceChanged</b></span>(float <i>worldSpaceTolerance</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn world_space_tolerance_changed(
        &self,
        world_space_tolerance: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_worldSpaceToleranceChanged(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
            world_space_tolerance,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">QPickTriangleEvent</a> class holds information when a triangle is picked</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPickTriangleEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">QPickTriangleEvent</a> class holds information when a triangle is picked</p>
/// <p>When QPickingSettings::pickMode() is set to <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html#PickMethod-enum">QPickingSettings::TrianglePicking</a>, the signals on <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">QObjectPicker</a> will carry an instance of <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">QPickTriangleEvent</a>.</p>
/// <p>This contains the details of the triangle that was picked.</p>
/// <p><b>Note: </b>In the case of indexed rendering, the point indices are relative to the array of coordinates, not the array of indices.</p></div>
#[repr(C)]
pub struct QPickTriangleEvent {
    _unused: u8,
}
impl QPickTriangleEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPickTriangleEvent::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_metaObject(
                self as *const crate::QPickTriangleEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickTriangleEvent::QPickTriangleEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#QPickTriangleEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPickTriangleEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_QPickTriangleEvent()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">QPickTriangleEvent::QPickTriangleEvent</a> Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> with the given parameters <i>position</i>, <i>worldIntersection</i>, <i>localIntersection</i>, <i>distance</i>, <i>triangleIndex</i>, <i>vertex1Index</i>, <i>vertex2Index</i> and <i>vertex3Index</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickTriangleEvent::QPickTriangleEvent(const QPointF& position, const QVector3D& worldIntersection, const QVector3D& localIntersection, float distance, unsigned int triangleIndex, unsigned int vertex1Index, unsigned int vertex2Index, unsigned int vertex3Index)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#QPickTriangleEvent-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html">QPickTriangleEvent::QPickTriangleEvent</a> Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a> with the given parameters <i>position</i>, <i>worldIntersection</i>, <i>localIntersection</i>, <i>distance</i>, <i>triangleIndex</i>, <i>vertex1Index</i>, <i>vertex2Index</i> and <i>vertex3Index</i></p></div>
    #[inline(always)]
    pub unsafe fn new_8a(
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        world_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        local_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        distance: ::std::os::raw::c_float,
        triangle_index: ::std::os::raw::c_uint,
        vertex1_index: ::std::os::raw::c_uint,
        vertex2_index: ::std::os::raw::c_uint,
        vertex3_index: ::std::os::raw::c_uint,
    ) -> ::qt_core::QBox<crate::QPickTriangleEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_QPickTriangleEvent1(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(position)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    world_intersection,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    local_intersection,
                )
                .as_raw_ptr(),
                distance,
                triangle_index,
                vertex1_index,
                vertex2_index,
                vertex3_index,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Default constructs an instance of QPickTriangleEvent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickTriangleEvent::QPickTriangleEvent(const QPointF& position, const QVector3D& worldIntersection, const QVector3D& localIntersection, float distance, unsigned int triangleIndex, unsigned int vertex1Index, unsigned int vertex2Index, unsigned int vertex3Index, Qt3DRender::QPickEvent::Buttons button, int buttons, int modifiers, const QVector3D& uvw)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#QPickTriangleEvent-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QPickTriangleEvent.</p></div>
    #[inline(always)]
    pub unsafe fn new_12a(
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        world_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        local_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        distance: ::std::os::raw::c_float,
        triangle_index: ::std::os::raw::c_uint,
        vertex1_index: ::std::os::raw::c_uint,
        vertex2_index: ::std::os::raw::c_uint,
        vertex3_index: ::std::os::raw::c_uint,
        button: crate::q_pick_event::Buttons,
        buttons: ::std::os::raw::c_int,
        modifiers: ::std::os::raw::c_int,
        uvw: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) -> ::qt_core::QBox<crate::QPickTriangleEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_QPickTriangleEvent2(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(position)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    world_intersection,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    local_intersection,
                )
                .as_raw_ptr(),
                distance,
                triangle_index,
                vertex1_index,
                vertex2_index,
                vertex3_index,
                button,
                buttons,
                modifiers,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(uvw)
                    .as_raw_ptr(),
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPickTriangleEvent::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_qt_metacall(
            self as *const crate::QPickTriangleEvent as *mut crate::QPickTriangleEvent,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPickTriangleEvent::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_qt_metacast(
            self as *const crate::QPickTriangleEvent as *mut crate::QPickTriangleEvent,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickTriangleEvent::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickTriangleEvent::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the triangle index of the event</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickTriangleEvent::triangleIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#triangleIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the triangle index of the event</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#triangleIndex">triangleIndex</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn triangle_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_triangleIndex(
            self as *const crate::QPickTriangleEvent,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QPickTriangleEvent::uvw() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#uvw-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#uvw">uvw</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn uvw(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_uvw(
                self as *const crate::QPickTriangleEvent,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the index of the first vertex in the triangle</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickTriangleEvent::vertex1Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#vertex1Index-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the first vertex in the triangle</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#vertex1Index">vertex1Index</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertex1_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_vertex1Index(
            self as *const crate::QPickTriangleEvent,
        )
    }

    /// <p>Specifies the index of the second vertex in the triangle</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickTriangleEvent::vertex2Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#vertex2Index-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the second vertex in the triangle</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#vertex2Index">vertex2Index</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertex2_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_vertex2Index(
            self as *const crate::QPickTriangleEvent,
        )
    }

    /// <p>Specifies the index of the third vertex in the triangle</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickTriangleEvent::vertex3Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#vertex3Index-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the third vertex in the triangle</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicktriangleevent.html#vertex3Index">vertex3Index</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertex3_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_vertex3Index(
            self as *const crate::QPickTriangleEvent,
        )
    }
}

/// <p>Encapsulate a Point Light object in a Qt 3D scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPointLight```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate a Point Light object in a Qt 3D scene.</p></div>
#[repr(C)]
pub struct QPointLight {
    _unused: u8,
}
impl QPointLight {
    /// <p>Specifies the constant attenuation of the point light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPointLight::setConstantAttenuation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_constant_attenuation(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setConstantAttenuation(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the linear attenuation of the point light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPointLight::setLinearAttenuation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_linear_attenuation(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLinearAttenuation(float)\0"),
            )
        }
    }

    /// <p>Specifies the quadratic attenuation of the point light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPointLight::setQuadraticAttenuation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_quadratic_attenuation(
        &self,
    ) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setQuadraticAttenuation(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the constant attenuation of the point light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPointLight::constantAttenuationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn constant_attenuation_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2constantAttenuationChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the linear attenuation of the point light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPointLight::linearAttenuationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn linear_attenuation_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2linearAttenuationChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the quadratic attenuation of the point light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPointLight::quadraticAttenuationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn quadratic_attenuation_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2quadraticAttenuationChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the constant attenuation of the point light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPointLight::constantAttenuation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn constant_attenuation(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_constantAttenuation(
            self as *const crate::QPointLight,
        )
    }

    /// <p>Specifies the linear attenuation of the point light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPointLight::linearAttenuation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn linear_attenuation(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_linearAttenuation(
            self as *const crate::QPointLight,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPointLight::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_metaObject(
                self as *const crate::QPointLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html">QPointLight</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPointLight::QPointLight(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#QPointLight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html">QPointLight</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_QPointLight(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulate a Point Light object in a Qt 3D scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPointLight::QPointLight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate a Point Light object in a Qt 3D scene.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPointLight> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_QPointLight1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPointLight::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_qt_metacall(
            self as *const crate::QPointLight as *mut crate::QPointLight,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPointLight::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_qt_metacast(
            self as *const crate::QPointLight as *mut crate::QPointLight,
            arg1,
        )
    }

    /// <p>Specifies the quadratic attenuation of the point light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPointLight::quadraticAttenuation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn quadratic_attenuation(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_quadraticAttenuation(
            self as *const crate::QPointLight,
        )
    }

    /// <p>Specifies the constant attenuation of the point light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPointLight::setConstantAttenuation(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_constant_attenuation(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_setConstantAttenuation(
            self as *const crate::QPointLight as *mut crate::QPointLight,
            value,
        )
    }

    /// <p>Specifies the linear attenuation of the point light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPointLight::setLinearAttenuation(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_linear_attenuation(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_setLinearAttenuation(
            self as *const crate::QPointLight as *mut crate::QPointLight,
            value,
        )
    }

    /// <p>Specifies the quadratic attenuation of the point light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPointLight::setQuadraticAttenuation(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the point light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_quadratic_attenuation(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_setQuadraticAttenuation(
            self as *const crate::QPointLight as *mut crate::QPointLight,
            value,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPointLight::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPointLight::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_point_size {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QPointSize```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QPointSize::SizeMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SizeMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SizeMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SizeMode(value)
        }
    }

    impl From<SizeMode> for ::std::os::raw::c_int {
        fn from(value: SizeMode) -> Self {
            value.0
        }
    }

    impl SizeMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SizeMode {
        /// C++ enum variant: <span style='color: green;'>```Fixed = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Fixed: crate::q_point_size::SizeMode = crate::q_point_size::SizeMode(0);
        /// C++ enum variant: <span style='color: green;'>```Programmable = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Programmable: crate::q_point_size::SizeMode = crate::q_point_size::SizeMode(1);
    }
}
/// <p>Specifies the size of rasterized points. May either be set statically or by shader programs.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPointSize```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the size of rasterized points. May either be set statically or by shader programs.</p>
/// <p>When the <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#sizeMode-prop">sizeMode</a> property is set to SizeMode::Fixed, the value is set using glPointSize(), if available. When using SizeMode::Programmable, gl_PointSize must be set within shader programs, the value provided to this <a href="http://doc.qt.io/qt-5/qml-renderstate.html">RenderState</a> is ignored in that case.</p></div>
#[repr(C)]
pub struct QPointSize {
    _unused: u8,
}
impl QPointSize {
    /// <p>Specifies the sizeMode to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPointSize::setSizeMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#sizeMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sizeMode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> SizeMode </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSizeMode</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeModeChanged</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_size_mode(&self) -> ::qt_core::Receiver<(crate::q_point_size::SizeMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setSizeMode(Qt3DRender::QPointSize::SizeMode)\0",
                ),
            )
        }
    }

    /// <p>Specifies the point size value to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPointSize::setValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the point size value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setValue(float)\0"),
            )
        }
    }

    /// <p>Specifies the sizeMode to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPointSize::sizeModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#sizeMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sizeMode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> SizeMode </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSizeMode</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeModeChanged</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn size_mode_changed(&self) -> ::qt_core::Signal<(crate::q_point_size::SizeMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2sizeModeChanged(Qt3DRender::QPointSize::SizeMode)\0",
                ),
            )
        }
    }

    /// <p>Specifies the point size value to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPointSize::valueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the point size value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2valueChanged(float)\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPointSize::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_metaObject(
                self as *const crate::QPointSize,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QPointSize.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPointSize::QPointSize(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#QPointSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QPointSize.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QPointSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_QPointSize(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Specifies the size of rasterized points. May either be set statically or by shader programs.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPointSize::QPointSize()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the size of rasterized points. May either be set statically or by shader programs.</p>
    /// <p>When the <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#sizeMode-prop">sizeMode</a> property is set to SizeMode::Fixed, the value is set using glPointSize(), if available. When using SizeMode::Programmable, gl_PointSize must be set within shader programs, the value provided to this <a href="http://doc.qt.io/qt-5/qml-renderstate.html">RenderState</a> is ignored in that case.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPointSize> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_QPointSize1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPointSize::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_qt_metacall(
            self as *const crate::QPointSize as *mut crate::QPointSize,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPointSize::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_qt_metacast(
            self as *const crate::QPointSize as *mut crate::QPointSize,
            arg1,
        )
    }

    /// <p>Specifies the sizeMode to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPointSize::setSizeMode(Qt3DRender::QPointSize::SizeMode sizeMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#sizeMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sizeMode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> SizeMode </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSizeMode</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeModeChanged</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_size_mode(&self, size_mode: crate::q_point_size::SizeMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_setSizeMode(
            self as *const crate::QPointSize as *mut crate::QPointSize,
            size_mode,
        )
    }

    /// <p>Specifies the point size value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPointSize::setValue(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the point size value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_value(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_setValue(
            self as *const crate::QPointSize as *mut crate::QPointSize,
            value,
        )
    }

    /// <p>Specifies the sizeMode to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointSize::SizeMode Qt3DRender::QPointSize::sizeMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#sizeMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sizeMode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> SizeMode </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSizeMode</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeModeChanged</b></span>(SizeMode <i>sizeMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn size_mode(&self) -> crate::q_point_size::SizeMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_sizeMode(
            self as *const crate::QPointSize,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPointSize::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPointSize::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the point size value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPointSize::value() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpointsize.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the point size value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn value(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_value(
            self as *const crate::QPointSize,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">QPolygonOffset</a> class sets the scale and steps to calculate depth values for polygon offsets.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPolygonOffset```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">QPolygonOffset</a> class sets the scale and steps to calculate depth values for polygon offsets.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">QPolygonOffset</a> class adds an offset to the fragment depth value prior to depth test and depth write. The offset can be used to avoid z-fighting when rendering polygons with very close depth values such as decals.</p></div>
#[repr(C)]
pub struct QPolygonOffset {
    _unused: u8,
}
impl QPolygonOffset {
    /// <p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPolygonOffset::setScaleFactor` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#scaleFactor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setScaleFactor</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactorChanged</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_scale_factor(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setScaleFactor(float)\0"),
            )
        }
    }

    /// <p>Holds the units that create constant depth offsets. Default value is 0.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QPolygonOffset::setDepthSteps` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#depthSteps-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the units that create constant depth offsets. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>depthSteps</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthSteps</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthStepsChanged</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_depth_steps(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDepthSteps(float)\0"),
            )
        }
    }

    /// <p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPolygonOffset::scaleFactorChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#scaleFactor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setScaleFactor</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactorChanged</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn scale_factor_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2scaleFactorChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the units that create constant depth offsets. Default value is 0.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QPolygonOffset::depthStepsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#depthSteps-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the units that create constant depth offsets. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>depthSteps</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthSteps</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthStepsChanged</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn depth_steps_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2depthStepsChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the units that create constant depth offsets. Default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPolygonOffset::depthSteps() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#depthSteps-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the units that create constant depth offsets. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>depthSteps</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthSteps</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthStepsChanged</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn depth_steps(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_depthSteps(
            self as *const crate::QPolygonOffset,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPolygonOffset::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_metaObject(
                self as *const crate::QPolygonOffset,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QPolygonOffset.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPolygonOffset::QPolygonOffset(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#QPolygonOffset">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QPolygonOffset.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QPolygonOffset> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_QPolygonOffset(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">QPolygonOffset</a> class sets the scale and steps to calculate depth values for polygon offsets.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPolygonOffset::QPolygonOffset()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">QPolygonOffset</a> class sets the scale and steps to calculate depth values for polygon offsets.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html">QPolygonOffset</a> class adds an offset to the fragment depth value prior to depth test and depth write. The offset can be used to avoid z-fighting when rendering polygons with very close depth values such as decals.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPolygonOffset> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_QPolygonOffset1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPolygonOffset::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_qt_metacall(
            self as *const crate::QPolygonOffset as *mut crate::QPolygonOffset,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPolygonOffset::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_qt_metacast(
            self as *const crate::QPolygonOffset as *mut crate::QPolygonOffset,
            arg1,
        )
    }

    /// <p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QPolygonOffset::scaleFactor() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#scaleFactor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setScaleFactor</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactorChanged</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn scale_factor(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_scaleFactor(
            self as *const crate::QPolygonOffset,
        )
    }

    /// <p>Holds the units that create constant depth offsets. Default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPolygonOffset::setDepthSteps(float depthSteps)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#depthSteps-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the units that create constant depth offsets. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>depthSteps</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthSteps</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthStepsChanged</b></span>(float <i>depthSteps</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_depth_steps(&self, depth_steps: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_setDepthSteps(
            self as *const crate::QPolygonOffset as *mut crate::QPolygonOffset,
            depth_steps,
        )
    }

    /// <p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QPolygonOffset::setScaleFactor(float scaleFactor)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpolygonoffset.html#scaleFactor-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the scale factor used to create a variable depth offset for each polygon. Default value is 0.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactor</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setScaleFactor</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>scaleFactorChanged</b></span>(float <i>scaleFactor</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_scale_factor(&self, scale_factor: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_setScaleFactor(
            self as *const crate::QPolygonOffset as *mut crate::QPolygonOffset,
            scale_factor,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPolygonOffset::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPolygonOffset::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_render_aspect {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QRenderAspect```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QRenderAspect::RenderType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RenderType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RenderType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RenderType(value)
        }
    }

    impl From<RenderType> for ::std::os::raw::c_int {
        fn from(value: RenderType) -> Self {
            value.0
        }
    }

    impl RenderType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RenderType {
        /// C++ enum variant: <span style='color: green;'>```Synchronous = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Synchronous: crate::q_render_aspect::RenderType =
            crate::q_render_aspect::RenderType(0);
        /// C++ enum variant: <span style='color: green;'>```Threaded = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Threaded: crate::q_render_aspect::RenderType =
            crate::q_render_aspect::RenderType(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect</a> class</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderAspect```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect</a> class</p></div>
#[repr(C)]
pub struct QRenderAspect {
    _unused: u8,
}
impl QRenderAspect {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderAspect::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_metaObject(
                self as *const crate::QRenderAspect,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect::QRenderAspect</a> instance with the specified <i>parent</i>. <i>parent</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderAspect::QRenderAspect(QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html#QRenderAspect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect::QRenderAspect</a> instance with the specified <i>parent</i>. <i>parent</i></p></div>
    #[inline(always)]
    pub unsafe fn from_q_object(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
    ) -> ::qt_core::QBox<crate::QRenderAspect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_QRenderAspect(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect::QRenderAspect</a> instance with the specified <i>type</i> and <i>parent</i>. <i>type</i> <i>parent</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderAspect::QRenderAspect(Qt3DRender::QRenderAspect::RenderType type, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html#QRenderAspect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect::QRenderAspect</a> instance with the specified <i>type</i> and <i>parent</i>. <i>type</i> <i>parent</i></p></div>
    #[inline(always)]
    pub unsafe fn from_render_type_q_object(
        type_: crate::q_render_aspect::RenderType,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
    ) -> ::qt_core::QBox<crate::QRenderAspect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_QRenderAspect1(
                type_,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect</a> class</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderAspect::QRenderAspect()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect</a> class</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::QRenderAspect> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_QRenderAspect2() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect::QRenderAspect</a> instance with the specified <i>type</i> and <i>parent</i>. <i>type</i> <i>parent</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderAspect::QRenderAspect(Qt3DRender::QRenderAspect::RenderType type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html#QRenderAspect-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderaspect.html">QRenderAspect::QRenderAspect</a> instance with the specified <i>type</i> and <i>parent</i>. <i>type</i> <i>parent</i></p></div>
    #[inline(always)]
    pub unsafe fn from_render_type(
        type_: crate::q_render_aspect::RenderType,
    ) -> ::qt_core::QBox<crate::QRenderAspect> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_QRenderAspect4(type_) };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderAspect::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_qt_metacall(
            self as *const crate::QRenderAspect as *mut crate::QRenderAspect,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderAspect::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_qt_metacast(
            self as *const crate::QRenderAspect as *mut crate::QRenderAspect,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderAspect::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderAspect::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Receives the result of render capture request.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderCaptureReply```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Receives the result of render capture request.</p>
/// <p>An object, which receives the image from <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html#requestCapture">QRenderCapture::requestCapture</a>.</p></div>
#[repr(C)]
pub struct QRenderCaptureReply {
    _unused: u8,
}
impl QRenderCaptureReply {
    /// Returns a built-in Qt signal `Qt3DRender::QRenderCaptureReply::completeChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn complete_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2completeChanged(bool)\0"),
            )
        }
    }

    /// <p>Holds the complete state of the render capture.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderCaptureReply::completed` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html#complete-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the complete state of the render capture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isComplete</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>completed</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn completed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2completed()\0"),
            )
        }
    }

    /// <p>Holds the captureId, which was passed to the renderCapture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QRenderCaptureReply::captureId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html#captureId-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the captureId, which was passed to the renderCapture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>captureId</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn capture_id(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_captureId(
            self as *const crate::QRenderCaptureReply,
        )
    }

    /// <p>Holds the image, which was produced as a result of render capture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QImage Qt3DRender::QRenderCaptureReply::image() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html#image-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the image, which was produced as a result of render capture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QImage </td><td class="memItemRight bottomAlign"><span class="name"><b>image</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn image(&self) -> ::cpp_core::CppBox<::qt_gui::QImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_image(
                self as *const crate::QRenderCaptureReply,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the complete state of the render capture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QRenderCaptureReply::isComplete() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html#complete-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the complete state of the render capture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isComplete</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>completed</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_complete(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_isComplete(
            self as *const crate::QRenderCaptureReply,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderCaptureReply::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_metaObject(
                self as *const crate::QRenderCaptureReply,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderCaptureReply::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_qt_metacall(
            self as *const crate::QRenderCaptureReply as *mut crate::QRenderCaptureReply,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderCaptureReply::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_qt_metacast(
            self as *const crate::QRenderCaptureReply as *mut crate::QRenderCaptureReply,
            arg1,
        )
    }

    /// <p>Saves the render capture result as an image to <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QRenderCaptureReply::saveImage(const QString& fileName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html#saveImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the render capture result as an image to <i>fileName</i>.</p>
    /// <p>Returns true if the image was successfully saved; otherwise returns false.</p>
    /// <p>This function was introduced in  Qt 5.9.</p></div>
    #[inline(always)]
    pub unsafe fn save_image(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_saveImage(
            self as *const crate::QRenderCaptureReply,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// <p>Saves the render capture result as an image to <i>fileName</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderCaptureReply::saveToFile(const QString& fileName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply-obsolete.html#saveToFile">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Saves the render capture result as an image to <i>fileName</i>.</p>
    /// <p>Deprecated in 5.9. Use <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html#saveImage">saveImage</a>().</p>
    /// <p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See <a href="http://doc.qt.io/qt-5/qobject.html#Q_INVOKABLE">Q_INVOKABLE</a>.</p></div>
    #[inline(always)]
    pub unsafe fn save_to_file(
        &self,
        file_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_saveToFile(
            self as *const crate::QRenderCaptureReply,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(file_name)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderCaptureReply::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderCaptureReply::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Frame graph node for render capture</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderCapture```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Frame graph node for render capture</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">QRenderCapture</a> is used to capture rendering into an image at any render stage. Capturing must be initiated by the user and one image is returned per capture request. User can issue multiple render capture requests simultaniously, but only one request is served per <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">QRenderCapture</a> instance per frame.</p></div>
#[repr(C)]
pub struct QRenderCapture {
    _unused: u8,
}
impl QRenderCapture {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderCapture::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_metaObject(
                self as *const crate::QRenderCapture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>The constructor creates an instance with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderCapture::QRenderCapture(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html#QRenderCapture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The constructor creates an instance with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_QRenderCapture(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Frame graph node for render capture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderCapture::QRenderCapture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Frame graph node for render capture</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">QRenderCapture</a> is used to capture rendering into an image at any render stage. Capturing must be initiated by the user and one image is returned per capture request. User can issue multiple render capture requests simultaniously, but only one request is served per <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">QRenderCapture</a> instance per frame.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderCapture> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_QRenderCapture1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderCapture::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_qt_metacall(
            self as *const crate::QRenderCapture as *mut crate::QRenderCapture,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderCapture::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_qt_metacast(
            self as *const crate::QRenderCapture as *mut crate::QRenderCapture,
            arg1,
        )
    }

    /// <p>Used to request render capture. Only one render capture result is produced per requestCapture call even if the frame graph has multiple leaf nodes. The function returns a <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">QRenderCaptureReply</a> object, which receives the captured image when it is done. The user is responsible for deallocating the returned object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCaptureReply* Qt3DRender::QRenderCapture::requestCapture(int captureId)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html#requestCapture">C++ documentation</a> for <span style='color: green;'>```Qt3DRender::QRenderCaptureReply *QRenderCapture::requestCapture()```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Used to request render capture. Only one render capture result is produced per requestCapture call even if the frame graph has multiple leaf nodes. The function returns a <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">QRenderCaptureReply</a> object, which receives the captured image when it is done. The user is responsible for deallocating the returned object.</p></div>
    #[inline(always)]
    pub unsafe fn request_capture_int(
        &self,
        capture_id: ::std::os::raw::c_int,
    ) -> ::qt_core::QPtr<crate::QRenderCaptureReply> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_requestCapture(
                self as *const crate::QRenderCapture as *mut crate::QRenderCapture,
                capture_id,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Used to request render capture. Only one render capture result is produced per requestCapture call even if the frame graph has multiple leaf nodes. The function returns a <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">QRenderCaptureReply</a> object, which receives the captured image when it is done. The user is responsible for deallocating the returned object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCaptureReply* Qt3DRender::QRenderCapture::requestCapture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html#requestCapture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Used to request render capture. Only one render capture result is produced per requestCapture call even if the frame graph has multiple leaf nodes. The function returns a <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">QRenderCaptureReply</a> object, which receives the captured image when it is done. The user is responsible for deallocating the returned object.</p></div>
    #[inline(always)]
    pub unsafe fn request_capture(&self) -> ::qt_core::QPtr<crate::QRenderCaptureReply> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_requestCapture1(
                self as *const crate::QRenderCapture as *mut crate::QRenderCapture,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Used to request render capture. User can specify a <i>captureId</i> to identify the request. The requestId does not have to be unique. Only one render capture result is produced per <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html#requestCapture">requestCapture</a> call even if the frame graph has multiple leaf nodes. The function returns a <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">QRenderCaptureReply</a> object, which receives the captured image when it is done. The user is responsible for deallocating the returned object.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCaptureReply* Qt3DRender::QRenderCapture::requestCapture(const QRect& rect)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture-obsolete.html#requestCapture-1">C++ documentation</a> for <span style='color: green;'>```Qt3DRender::QRenderCaptureReply *QRenderCapture::requestCapture(int captureId)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Used to request render capture. User can specify a <i>captureId</i> to identify the request. The requestId does not have to be unique. Only one render capture result is produced per <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html#requestCapture">requestCapture</a> call even if the frame graph has multiple leaf nodes. The function returns a <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">QRenderCaptureReply</a> object, which receives the captured image when it is done. The user is responsible for deallocating the returned object.</p>
    /// <p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See <a href="http://doc.qt.io/qt-5/qobject.html#Q_INVOKABLE">Q_INVOKABLE</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn request_capture_q_rect(
        &self,
        rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRect>>,
    ) -> ::qt_core::QPtr<crate::QRenderCaptureReply> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_requestCapture4(
                self as *const crate::QRenderCapture as *mut crate::QRenderCapture,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRect>>::cast_into(rect)
                    .as_raw_ptr(),
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderCapture::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderCapture::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_shader_program {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QShaderProgram```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QShaderProgram::ShaderType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ShaderType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ShaderType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ShaderType(value)
        }
    }

    impl From<ShaderType> for ::std::os::raw::c_int {
        fn from(value: ShaderType) -> Self {
            value.0
        }
    }

    impl ShaderType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ShaderType {
        /// C++ enum variant: <span style='color: green;'>```Vertex = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Vertex: crate::q_shader_program::ShaderType =
            crate::q_shader_program::ShaderType(0);
        /// C++ enum variant: <span style='color: green;'>```Fragment = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Fragment: crate::q_shader_program::ShaderType =
            crate::q_shader_program::ShaderType(1);
        /// C++ enum variant: <span style='color: green;'>```TessellationControl = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const TessellationControl: crate::q_shader_program::ShaderType =
            crate::q_shader_program::ShaderType(2);
        /// C++ enum variant: <span style='color: green;'>```TessellationEvaluation = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const TessellationEvaluation: crate::q_shader_program::ShaderType =
            crate::q_shader_program::ShaderType(3);
        /// C++ enum variant: <span style='color: green;'>```Geometry = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Geometry: crate::q_shader_program::ShaderType =
            crate::q_shader_program::ShaderType(4);
        /// C++ enum variant: <span style='color: green;'>```Compute = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const Compute: crate::q_shader_program::ShaderType =
            crate::q_shader_program::ShaderType(5);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QShaderProgram::Status```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Status(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Status {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Status(value)
        }
    }

    impl From<Status> for ::std::os::raw::c_int {
        fn from(value: Status) -> Self {
            value.0
        }
    }

    impl Status {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Status {
        /// C++ enum variant: <span style='color: green;'>```NotReady = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NotReady: crate::q_shader_program::Status = crate::q_shader_program::Status(0);
        /// C++ enum variant: <span style='color: green;'>```Ready = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Ready: crate::q_shader_program::Status = crate::q_shader_program::Status(1);
        /// C++ enum variant: <span style='color: green;'>```Error = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Error: crate::q_shader_program::Status = crate::q_shader_program::Status(2);
    }
}
/// <p>Encapsulates a Shader Program.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QShaderProgram```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates a Shader Program.</p>
/// <p>A shader program consists of several different shaders, such as vertex and fragment shaders.</p></div>
#[repr(C)]
pub struct QShaderProgram {
    _unused: u8,
}
impl QShaderProgram {
    /// <p>Holds the vertex shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgram::setVertexShaderCode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#vertexShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderCode</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCodeChanged</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_vertex_shader_code(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setVertexShaderCode(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the tesselation control shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgram::setTessellationControlShaderCode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationControlShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation control shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderCode</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_tessellation_control_shader_code(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setTessellationControlShaderCode(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the tesselation evaluation shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgram::setTessellationEvaluationShaderCode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationEvaluationShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation evaluation shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderCode</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_tessellation_evaluation_shader_code(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setTessellationEvaluationShaderCode(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the geometry shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgram::setGeometryShaderCode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#geometryShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderCode</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCodeChanged</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_geometry_shader_code(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setGeometryShaderCode(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the fragment shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgram::setFragmentShaderCode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#fragmentShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the fragment shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderCode</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCodeChanged</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_fragment_shader_code(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFragmentShaderCode(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the compute shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgram::setComputeShaderCode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#computeShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the compute shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderCode</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCodeChanged</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_compute_shader_code(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setComputeShaderCode(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the vertex shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::vertexShaderCodeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#vertexShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderCode</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCodeChanged</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn vertex_shader_code_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2vertexShaderCodeChanged(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the tesselation control shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::tessellationControlShaderCodeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationControlShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation control shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderCode</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn tessellation_control_shader_code_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2tessellationControlShaderCodeChanged(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the tesselation evaluation shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::tessellationEvaluationShaderCodeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationEvaluationShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation evaluation shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderCode</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn tessellation_evaluation_shader_code_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2tessellationEvaluationShaderCodeChanged(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the geometry shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::geometryShaderCodeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#geometryShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderCode</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCodeChanged</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn geometry_shader_code_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2geometryShaderCodeChanged(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the fragment shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::fragmentShaderCodeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#fragmentShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the fragment shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderCode</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCodeChanged</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn fragment_shader_code_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2fragmentShaderCodeChanged(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the compute shader code used by this shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::computeShaderCodeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#computeShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the compute shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderCode</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCodeChanged</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn compute_shader_code_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2computeShaderCodeChanged(QByteArray const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the log of the current shader program. This is useful to diagnose a compilation failure of the shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::logChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#log-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the log of the current shader program. This is useful to diagnose a compilation failure of the shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>log</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>logChanged</b></span>(const QString &amp;<i>log</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn log_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QString,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2logChanged(QString const &)\0"),
            )
        }
    }

    /// <p>Holds the status of the current shader program.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgram::statusChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the status of the current shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#status">status</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn status_changed(&self) -> ::qt_core::Signal<(crate::q_shader_program::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2statusChanged(Qt3DRender::QShaderProgram::Status)\0",
                ),
            )
        }
    }

    /// <p>Holds the compute shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgram::computeShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#computeShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the compute shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderCode</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCodeChanged</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn compute_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_computeShaderCode(
                self as *const crate::QShaderProgram,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the fragment shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgram::fragmentShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#fragmentShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the fragment shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderCode</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCodeChanged</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn fragment_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_fragmentShaderCode(
                self as *const crate::QShaderProgram,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the geometry shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgram::geometryShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#geometryShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderCode</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCodeChanged</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn geometry_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_geometryShaderCode(
                self as *const crate::QShaderProgram,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the shader code loaded from <i>sourceUrl</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```static QByteArray Qt3DRender::QShaderProgram::loadSource(const QUrl& sourceUrl)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#loadSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the shader code loaded from <i>sourceUrl</i>.</p></div>
    #[inline(always)]
    pub unsafe fn load_source(
        source_url: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_loadSource(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(source_url)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the log of the current shader program. This is useful to diagnose a compilation failure of the shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QString Qt3DRender::QShaderProgram::log() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#log-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the log of the current shader program. This is useful to diagnose a compilation failure of the shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QString </td><td class="memItemRight bottomAlign"><span class="name"><b>log</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>logChanged</b></span>(const QString &amp;<i>log</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn log(&self) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_log(
                self as *const crate::QShaderProgram,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QShaderProgram::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_metaObject(
                self as *const crate::QShaderProgram,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QShaderProgram.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderProgram::QShaderProgram(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#QShaderProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QShaderProgram.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_QShaderProgram(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulates a Shader Program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderProgram::QShaderProgram()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates a Shader Program.</p>
    /// <p>A shader program consists of several different shaders, such as vertex and fragment shaders.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QShaderProgram> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_QShaderProgram1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QShaderProgram::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_qt_metacall(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QShaderProgram::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_qt_metacast(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
            arg1,
        )
    }

    /// <p>Holds the compute shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgram::setComputeShaderCode(const QByteArray& computeShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#computeShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the compute shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderCode</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCodeChanged</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_compute_shader_code(
        &self,
        compute_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_setComputeShaderCode(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(
                compute_shader_code,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the fragment shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgram::setFragmentShaderCode(const QByteArray& fragmentShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#fragmentShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the fragment shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderCode</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCodeChanged</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_fragment_shader_code(
        &self,
        fragment_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_setFragmentShaderCode(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(
                fragment_shader_code,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the geometry shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgram::setGeometryShaderCode(const QByteArray& geometryShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#geometryShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the geometry shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderCode</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCodeChanged</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_geometry_shader_code(
        &self,
        geometry_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_setGeometryShaderCode(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(
                geometry_shader_code,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Sets the shader code for <i>type</i> of shader to the <i>shaderCode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QShaderProgram::setShaderCode(Qt3DRender::QShaderProgram::ShaderType type, const QByteArray& shaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#setShaderCode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the shader code for <i>type</i> of shader to the <i>shaderCode</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#shaderCode">shaderCode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_shader_code(
        &self,
        type_: crate::q_shader_program::ShaderType,
        shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_setShaderCode(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
            type_,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(shader_code)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the tesselation control shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgram::setTessellationControlShaderCode(const QByteArray& tessellationControlShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationControlShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation control shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderCode</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_tessellation_control_shader_code(
        &self,
        tessellation_control_shader_code: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<::qt_core::QByteArray>,
        >,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_setTessellationControlShaderCode(self as *const crate::QShaderProgram as *mut crate::QShaderProgram, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(tessellation_control_shader_code).as_raw_ptr())
    }

    /// <p>Holds the tesselation evaluation shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgram::setTessellationEvaluationShaderCode(const QByteArray& tessellationEvaluationShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationEvaluationShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation evaluation shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderCode</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_tessellation_evaluation_shader_code(
        &self,
        tessellation_evaluation_shader_code: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<::qt_core::QByteArray>,
        >,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_setTessellationEvaluationShaderCode(self as *const crate::QShaderProgram as *mut crate::QShaderProgram, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(tessellation_evaluation_shader_code).as_raw_ptr())
    }

    /// <p>Holds the vertex shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgram::setVertexShaderCode(const QByteArray& vertexShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#vertexShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderCode</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCodeChanged</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_vertex_shader_code(
        &self,
        vertex_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_setVertexShaderCode(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(
                vertex_shader_code,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Returns the shader code for <i>type</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgram::shaderCode(Qt3DRender::QShaderProgram::ShaderType type) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#shaderCode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the shader code for <i>type</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#setShaderCode">setShaderCode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn shader_code(
        &self,
        type_: crate::q_shader_program::ShaderType,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_shaderCode(
                self as *const crate::QShaderProgram,
                type_,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the status of the current shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgram::Status Qt3DRender::QShaderProgram::status() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the status of the current shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#status">status</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn status(&self) -> crate::q_shader_program::Status {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_status(
            self as *const crate::QShaderProgram,
        )
    }

    /// <p>Holds the tesselation control shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgram::tessellationControlShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationControlShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation control shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderCode</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn tessellation_control_shader_code(
        &self,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_tessellationControlShaderCode(self as *const crate::QShaderProgram)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the tesselation evaluation shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgram::tessellationEvaluationShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#tessellationEvaluationShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the tesselation evaluation shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderCode</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn tessellation_evaluation_shader_code(
        &self,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_tessellationEvaluationShaderCode(self as *const crate::QShaderProgram)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderProgram::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderProgram::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the vertex shader code used by this shader program.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgram::vertexShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#vertexShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the vertex shader code used by this shader program.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderCode</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCodeChanged</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn vertex_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_vertexShaderCode(
                self as *const crate::QShaderProgram,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Encapsulates a Render Pass.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderPass```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates a Render Pass.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> specifies a single rendering pass - an instance of shader program execution - used by <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a>. Render pass consists of a <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">Qt3DRender::QShaderProgram</a> and a list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects, a list of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">Qt3DRender::QRenderState</a> objects and a list of <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> executes the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a> using the given <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> nodes when at least one of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes being referenced matches any of the <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes in <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> or when no <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes are specified and no <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> is present in the FrameGraph.</p>
/// <p>If the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> defines a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a>, it will be overridden by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> with the same name if it exists in any of the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> associated with the pass at runtime. This still can be useful to define sane default values.</p>
/// <p>At render time, for each leaf node of the FrameGraph a base render state is recorded by accumulating states defined by all <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> nodes in the FrameGraph branch. Each <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> can overload this base render state by specifying its own <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> nodes.</p>
/// <pre class="cpp">
///
///   <span class="comment">// Create the render passes</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#QRenderPass">QRenderPass</a></span> <span class="operator">*</span>pass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#QRenderPass">QRenderPass</a></span>();
///
///   <span class="comment">// Create shader program</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span> <span class="operator">*</span>glShader <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span>();
///
///   <span class="comment">// Set the shader on the render pass</span>
///   pass<span class="operator">-</span><span class="operator">&gt;</span>setShaderProgram(glShader);
///
///   <span class="comment">// Create a FilterKey</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span> <span class="operator">*</span>filterKey <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span>();
///   filterKey<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"name"</span>));
///   fitlerKey<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"zFillPass"</span>));
///
///   <span class="comment">// Add the FilterKey to the pass</span>
///   pass<span class="operator">-</span><span class="operator">&gt;</span>addFilterKey(filterKey);
///
///   <span class="comment">// Create a QParameter</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span> <span class="operator">*</span>colorParameter <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"color"</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
///
///   <span class="comment">// Add parameter to pass</span>
///   pass<span class="operator">-</span><span class="operator">&gt;</span>addParameter(colorParameter);
///
///   <span class="comment">// Create a QRenderState</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a></span> <span class="operator">*</span>depthTest <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a></span>();
///
///   <span class="comment">// Add the render state to the pass</span>
///   pass<span class="operator">-</span><span class="operator">&gt;</span>addRenderState(depthTest);
///
/// </pre></div>
#[repr(C)]
pub struct QRenderPass {
    _unused: u8,
}
impl QRenderPass {
    /// <p>Specifies the shader program to be used for this render pass.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderPass::setShaderProgram` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the shader program to be used for this render pass.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_shader_program(&self) -> ::qt_core::Receiver<(*mut crate::QShaderProgram,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setShaderProgram(Qt3DRender::QShaderProgram *)\0",
                ),
            )
        }
    }

    /// <p>Specifies the shader program to be used for this render pass.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderPass::shaderProgramChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the shader program to be used for this render pass.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn shader_program_changed(&self) -> ::qt_core::Signal<(*mut crate::QShaderProgram,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2shaderProgramChanged(Qt3DRender::QShaderProgram *)\0",
                ),
            )
        }
    }

    /// <p>Adds <i>filterKey</i> to the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> local filter keys.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPass::addFilterKey(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#addFilterKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds <i>filterKey</i> to the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> local filter keys.</p></div>
    #[inline(always)]
    pub unsafe fn add_filter_key(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_addFilterKey(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Add <i>parameter</i> to the render pass' parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPass::addParameter(Qt3DRender::QParameter* p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#addParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add <i>parameter</i> to the render pass' parameters.</p></div>
    #[inline(always)]
    pub unsafe fn add_parameter(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_addParameter(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(p).as_raw_ptr()
                as *mut crate::QParameter,
        )
    }

    /// <p>Adds a render <i>state</i> to the rendering pass. That implies that when the pass is executed at render time, the globally set render state will be modified by the states defined locally by the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPass::addRenderState(Qt3DRender::QRenderState* state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#addRenderState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a render <i>state</i> to the rendering pass. That implies that when the pass is executed at render time, the globally set render state will be modified by the states defined locally by the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a>.</p>
    /// <p><b>Note: </b>not defining any <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">Qt3DRender::QRenderState</a> in a pass will result in the pass using the globally set render state for a given FrameGraph branch execution path.</p></div>
    #[inline(always)]
    pub unsafe fn add_render_state(
        &self,
        state: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderState>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_addRenderState(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderState>>::cast_into(state)
                .as_raw_ptr() as *mut crate::QRenderState,
        )
    }

    /// <p>Returns the list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> key objects making up the filter keys of the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*> Qt3DRender::QRenderPass::filterKeys() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#filterKeys">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> key objects making up the filter keys of the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a>.</p></div>
    #[inline(always)]
    pub unsafe fn filter_keys(&self) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_filterKeys(
                self as *const crate::QRenderPass,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderPass::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_metaObject(
                self as *const crate::QRenderPass,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderPass::QRenderPass(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#QRenderPass">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_QRenderPass(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulates a Render Pass.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderPass::QRenderPass()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates a Render Pass.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> specifies a single rendering pass - an instance of shader program execution - used by <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a>. Render pass consists of a <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">Qt3DRender::QShaderProgram</a> and a list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects, a list of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">Qt3DRender::QRenderState</a> objects and a list of <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> executes the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a> using the given <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> nodes when at least one of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes being referenced matches any of the <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes in <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> or when no <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes are specified and no <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> is present in the FrameGraph.</p>
    /// <p>If the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> defines a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a>, it will be overridden by a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> with the same name if it exists in any of the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">QMaterial</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> associated with the pass at runtime. This still can be useful to define sane default values.</p>
    /// <p>At render time, for each leaf node of the FrameGraph a base render state is recorded by accumulating states defined by all <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> nodes in the FrameGraph branch. Each <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> can overload this base render state by specifying its own <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> nodes.</p>
    /// <pre class="cpp">
    ///
    ///   <span class="comment">// Create the render passes</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#QRenderPass">QRenderPass</a></span> <span class="operator">*</span>pass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#QRenderPass">QRenderPass</a></span>();
    ///
    ///   <span class="comment">// Create shader program</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span> <span class="operator">*</span>glShader <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html">QShaderProgram</a></span>();
    ///
    ///   <span class="comment">// Set the shader on the render pass</span>
    ///   pass<span class="operator">-</span><span class="operator">&gt;</span>setShaderProgram(glShader);
    ///
    ///   <span class="comment">// Create a FilterKey</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span> <span class="operator">*</span>filterKey <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span>();
    ///   filterKey<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"name"</span>));
    ///   fitlerKey<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"zFillPass"</span>));
    ///
    ///   <span class="comment">// Add the FilterKey to the pass</span>
    ///   pass<span class="operator">-</span><span class="operator">&gt;</span>addFilterKey(filterKey);
    ///
    ///   <span class="comment">// Create a QParameter</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span> <span class="operator">*</span>colorParameter <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"color"</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
    ///
    ///   <span class="comment">// Add parameter to pass</span>
    ///   pass<span class="operator">-</span><span class="operator">&gt;</span>addParameter(colorParameter);
    ///
    ///   <span class="comment">// Create a QRenderState</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a></span> <span class="operator">*</span>depthTest <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qdepthtest.html">QDepthTest</a></span>();
    ///
    ///   <span class="comment">// Add the render state to the pass</span>
    ///   pass<span class="operator">-</span><span class="operator">&gt;</span>addRenderState(depthTest);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderPass> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_QRenderPass1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns a vector of the render pass' current parameters</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> Qt3DRender::QRenderPass::parameters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#parameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector of the render pass' current parameters</p></div>
    #[inline(always)]
    pub unsafe fn parameters(&self) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_parameters(
                self as *const crate::QRenderPass,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderPass::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_qt_metacall(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderPass::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_qt_metacast(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            arg1,
        )
    }

    /// <p>Removes <i>filterKey</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> local filter keys.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPass::removeFilterKey(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#removeFilterKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>filterKey</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> local filter keys.</p></div>
    #[inline(always)]
    pub unsafe fn remove_filter_key(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_removeFilterKey(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Remove <i>parameter</i> from the render pass' parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPass::removeParameter(Qt3DRender::QParameter* p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#removeParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove <i>parameter</i> from the render pass' parameters.</p></div>
    #[inline(always)]
    pub unsafe fn remove_parameter(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_removeParameter(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(p).as_raw_ptr()
                as *mut crate::QParameter,
        )
    }

    /// <p>Removes <i>state</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> local render state.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPass::removeRenderState(Qt3DRender::QRenderState* state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#removeRenderState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>state</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> local render state.</p></div>
    #[inline(always)]
    pub unsafe fn remove_render_state(
        &self,
        state: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderState>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_removeRenderState(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderState>>::cast_into(state)
                .as_raw_ptr() as *mut crate::QRenderState,
        )
    }

    /// <p>Returns the list of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">Qt3DRender::QRenderState</a> state objects making up the render state of the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*> Qt3DRender::QRenderPass::renderStates() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#renderStates">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">Qt3DRender::QRenderState</a> state objects making up the render state of the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a>.</p></div>
    #[inline(always)]
    pub unsafe fn render_states(&self) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_renderStates(
                self as *const crate::QRenderPass,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the shader program to be used for this render pass.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderPass::setShaderProgram(Qt3DRender::QShaderProgram* shaderProgram)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the shader program to be used for this render pass.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_shader_program(
        &self,
        shader_program: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QShaderProgram>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_setShaderProgram(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QShaderProgram>>::cast_into(
                shader_program,
            )
            .as_raw_ptr() as *mut crate::QShaderProgram,
        )
    }

    /// <p>Specifies the shader program to be used for this render pass.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgram* Qt3DRender::QRenderPass::shaderProgram() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the shader program to be used for this render pass.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn shader_program(&self) -> ::qt_core::QPtr<crate::QShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_shaderProgram(
                self as *const crate::QRenderPass,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderPass::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderPass::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Provides storage for vectors of Filter Keys and Parameters</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderPassFilter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides storage for vectors of Filter Keys and Parameters</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">Qt3DRender::QRenderPassFilter</a> FrameGraph node is used to select which <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> objects are selected for drawing. <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> specifies a list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects and <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects. When <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> is present in the FrameGraph, only the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> objects, whose <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects match the keys in <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> are selected for rendering. If no <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> is present, then all <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> objects are selected for rendering. The parameters in the list can be used to set values for shader parameters. The parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> are overridden by parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>.</p></div>
#[repr(C)]
pub struct QRenderPassFilter {
    _unused: u8,
}
impl QRenderPassFilter {
    /// <p>Add the <i>filterKey</i> to the match vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPassFilter::addMatch(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html#addMatch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add the <i>filterKey</i> to the match vector.</p></div>
    #[inline(always)]
    pub unsafe fn add_match(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_addMatch(
            self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Add the given <i>parameter</i> to the parameter vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPassFilter::addParameter(Qt3DRender::QParameter* parameter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html#addParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add the given <i>parameter</i> to the parameter vector.</p></div>
    #[inline(always)]
    pub unsafe fn add_parameter(
        &self,
        parameter: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_addParameter(
            self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(parameter)
                .as_raw_ptr() as *mut crate::QParameter,
        )
    }

    /// <p>Returns a vector of the current keys for the filter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*> Qt3DRender::QRenderPassFilter::matchAny() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html#matchAny">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector of the current keys for the filter.</p></div>
    #[inline(always)]
    pub unsafe fn match_any(&self) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_matchAny(
                self as *const crate::QRenderPassFilter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderPassFilter::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_metaObject(
                self as *const crate::QRenderPassFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QRenderPassFilter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderPassFilter::QRenderPassFilter(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html#QRenderPassFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRenderPassFilter.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_QRenderPassFilter(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides storage for vectors of Filter Keys and Parameters</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderPassFilter::QRenderPassFilter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides storage for vectors of Filter Keys and Parameters</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">Qt3DRender::QRenderPassFilter</a> FrameGraph node is used to select which <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> objects are selected for drawing. <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> specifies a list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects and <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects. When <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> is present in the FrameGraph, only the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> objects, whose <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects match the keys in <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> are selected for rendering. If no <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> is present, then all <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a> objects are selected for rendering. The parameters in the list can be used to set values for shader parameters. The parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a> are overridden by parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a>, <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_QRenderPassFilter1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns the current vector of parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> Qt3DRender::QRenderPassFilter::parameters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html#parameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current vector of parameters.</p></div>
    #[inline(always)]
    pub unsafe fn parameters(&self) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_parameters(
                self as *const crate::QRenderPassFilter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderPassFilter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_qt_metacall(
            self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderPassFilter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_qt_metacast(
            self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
            arg1,
        )
    }

    /// <p>Remove the <i>filterKey</i> from the match vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPassFilter::removeMatch(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html#removeMatch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove the <i>filterKey</i> from the match vector.</p></div>
    #[inline(always)]
    pub unsafe fn remove_match(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_removeMatch(
            self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Remove the given <i>parameter</i> from the parameter vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderPassFilter::removeParameter(Qt3DRender::QParameter* parameter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html#removeParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove the given <i>parameter</i> from the parameter vector.</p></div>
    #[inline(always)]
    pub unsafe fn remove_parameter(
        &self,
        parameter: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_removeParameter(
            self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(parameter)
                .as_raw_ptr() as *mut crate::QParameter,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderPassFilter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderPassFilter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_render_settings {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QRenderSettings```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QRenderSettings::RenderPolicy```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RenderPolicy(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RenderPolicy {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RenderPolicy(value)
        }
    }

    impl From<RenderPolicy> for ::std::os::raw::c_int {
        fn from(value: RenderPolicy) -> Self {
            value.0
        }
    }

    impl RenderPolicy {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RenderPolicy {
        /// C++ enum variant: <span style='color: green;'>```OnDemand = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const OnDemand: crate::q_render_settings::RenderPolicy =
            crate::q_render_settings::RenderPolicy(0);
        /// C++ enum variant: <span style='color: green;'>```Always = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Always: crate::q_render_settings::RenderPolicy =
            crate::q_render_settings::RenderPolicy(1);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">QRenderSettings</a> class holds settings related to rendering process and host the active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderSettings```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">QRenderSettings</a> class holds settings related to rendering process and host the active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">QRenderSettings</a> component must be set as a component of the scene root entity. It specifies render policy and picking settings, as well as hosts the active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p></div>
#[repr(C)]
pub struct QRenderSettings {
    _unused: u8,
}
impl QRenderSettings {
    /// <p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderSettings::setActiveFrameGraph` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#activeFrameGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QFrameGraphNode *</td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setActiveFrameGraph</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraphChanged</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_active_frame_graph(
        &self,
    ) -> ::qt_core::Receiver<(*mut crate::QFrameGraphNode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setActiveFrameGraph(Qt3DRender::QFrameGraphNode *)\0",
                ),
            )
        }
    }

    /// <p>Holds the current render policy.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderSettings::setRenderPolicy` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#renderPolicy-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render policy.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> RenderPolicy </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicy</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRenderPolicy</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicyChanged</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_render_policy(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_render_settings::RenderPolicy,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setRenderPolicy(Qt3DRender::QRenderSettings::RenderPolicy)\0",
                ),
            )
        }
    }

    /// <p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderSettings::activeFrameGraphChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#activeFrameGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QFrameGraphNode *</td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setActiveFrameGraph</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraphChanged</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn active_frame_graph_changed(&self) -> ::qt_core::Signal<(*mut crate::QFrameGraphNode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2activeFrameGraphChanged(Qt3DRender::QFrameGraphNode *)\0",
                ),
            )
        }
    }

    /// <p>Holds the current render policy.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderSettings::renderPolicyChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#renderPolicy-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render policy.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> RenderPolicy </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicy</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRenderPolicy</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicyChanged</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn render_policy_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_render_settings::RenderPolicy,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2renderPolicyChanged(Qt3DRender::QRenderSettings::RenderPolicy)\0",
                ),
            )
        }
    }

    /// <p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* Qt3DRender::QRenderSettings::activeFrameGraph() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#activeFrameGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QFrameGraphNode *</td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setActiveFrameGraph</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraphChanged</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn active_frame_graph(&self) -> ::qt_core::QPtr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_activeFrameGraph(
                self as *const crate::QRenderSettings,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderSettings::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_metaObject(
                self as *const crate::QRenderSettings,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QRenderSettings.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderSettings::QRenderSettings(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#QRenderSettings">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRenderSettings.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_QRenderSettings(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">QRenderSettings</a> class holds settings related to rendering process and host the active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderSettings::QRenderSettings()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">QRenderSettings</a> class holds settings related to rendering process and host the active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html">QRenderSettings</a> component must be set as a component of the scene root entity. It specifies render policy and picking settings, as well as hosts the active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderSettings> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_QRenderSettings1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Holds the current pick settings for the <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings* Qt3DRender::QRenderSettings::pickingSettings()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#pickingSettings-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current pick settings for the <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QPickingSettings *</td><td class="memItemRight bottomAlign"><span class="name"><b>pickingSettings</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn picking_settings(&self) -> ::qt_core::QPtr<crate::QPickingSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_pickingSettings(
                self as *const crate::QRenderSettings as *mut crate::QRenderSettings,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderSettings::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_qt_metacall(
            self as *const crate::QRenderSettings as *mut crate::QRenderSettings,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderSettings::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_qt_metacast(
            self as *const crate::QRenderSettings as *mut crate::QRenderSettings,
            arg1,
        )
    }

    /// <p>Holds the current render policy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSettings::RenderPolicy Qt3DRender::QRenderSettings::renderPolicy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#renderPolicy-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render policy.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> RenderPolicy </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicy</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRenderPolicy</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicyChanged</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn render_policy(&self) -> crate::q_render_settings::RenderPolicy {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_renderPolicy(
            self as *const crate::QRenderSettings,
        )
    }

    /// <p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderSettings::setActiveFrameGraph(Qt3DRender::QFrameGraphNode* activeFrameGraph)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#activeFrameGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the currently active <a href="http://doc.qt.io/qt-5/qt3drender-framegraph.html">FrameGraph</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QFrameGraphNode *</td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setActiveFrameGraph</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>activeFrameGraphChanged</b></span>(QFrameGraphNode *<i>activeFrameGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_active_frame_graph(
        &self,
        active_frame_graph: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFrameGraphNode>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_setActiveFrameGraph(
            self as *const crate::QRenderSettings as *mut crate::QRenderSettings,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFrameGraphNode>>::cast_into(
                active_frame_graph,
            )
            .as_raw_ptr() as *mut crate::QFrameGraphNode,
        )
    }

    /// <p>Holds the current render policy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderSettings::setRenderPolicy(Qt3DRender::QRenderSettings::RenderPolicy renderPolicy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersettings.html#renderPolicy-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render policy.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> RenderPolicy </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicy</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRenderPolicy</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>renderPolicyChanged</b></span>(RenderPolicy <i>renderPolicy</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_render_policy(&self, render_policy: crate::q_render_settings::RenderPolicy) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_setRenderPolicy(
            self as *const crate::QRenderSettings as *mut crate::QRenderSettings,
            render_policy,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderSettings::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderSettings::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">FrameGraph</a> node offers a way of specifying a set of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> objects to be applied during the execution of a framegraph branch.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderStateSet```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">FrameGraph</a> node offers a way of specifying a set of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> objects to be applied during the execution of a framegraph branch.</p>
/// <p>States set on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> are set globally, contrary to the per-material states that can be set on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>. By default, an empty <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> will result in all render states being disabled when executed. Adding a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> state explicitly enables that render state at runtime.</p></div>
#[repr(C)]
pub struct QRenderStateSet {
    _unused: u8,
}
impl QRenderStateSet {
    /// <p>Adds a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> <i>state</i> to the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderStateSet::addRenderState(Qt3DRender::QRenderState* state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html#addRenderState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a new <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> <i>state</i> to the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> instance.</p>
    /// <p><b>Note: </b>Not setting any <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> state on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> instance implies all the render states will be disabled at render time.</p></div>
    #[inline(always)]
    pub unsafe fn add_render_state(
        &self,
        state: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderState>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_addRenderState(
            self as *const crate::QRenderStateSet as *mut crate::QRenderStateSet,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderState>>::cast_into(state)
                .as_raw_ptr() as *mut crate::QRenderState,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderStateSet::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_metaObject(
                self as *const crate::QRenderStateSet,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QRenderStateSet.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderStateSet::QRenderStateSet(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html#QRenderStateSet">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRenderStateSet.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderStateSet> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_QRenderStateSet(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">FrameGraph</a> node offers a way of specifying a set of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> objects to be applied during the execution of a framegraph branch.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderStateSet::QRenderStateSet()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">FrameGraph</a> node offers a way of specifying a set of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> objects to be applied during the execution of a framegraph branch.</p>
    /// <p>States set on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> are set globally, contrary to the per-material states that can be set on a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>. By default, an empty <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> will result in all render states being disabled when executed. Adding a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> state explicitly enables that render state at runtime.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderStateSet> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_QRenderStateSet1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderStateSet::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_qt_metacall(
            self as *const crate::QRenderStateSet as *mut crate::QRenderStateSet,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderStateSet::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_qt_metacast(
            self as *const crate::QRenderStateSet as *mut crate::QRenderStateSet,
            arg1,
        )
    }

    /// <p>Removes the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> <i>state</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderStateSet::removeRenderState(Qt3DRender::QRenderState* state)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html#removeRenderState">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> <i>state</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> instance.</p></div>
    #[inline(always)]
    pub unsafe fn remove_render_state(
        &self,
        state: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderState>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_removeRenderState(
            self as *const crate::QRenderStateSet as *mut crate::QRenderStateSet,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderState>>::cast_into(state)
                .as_raw_ptr() as *mut crate::QRenderState,
        )
    }

    /// <p>Returns the list of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> objects that compose the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*> Qt3DRender::QRenderStateSet::renderStates() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html#renderStates">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstate.html">QRenderState</a> objects that compose the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderstateset.html">QRenderStateSet</a> instance.</p></div>
    #[inline(always)]
    pub unsafe fn render_states(&self) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_renderStates(
                self as *const crate::QRenderStateSet,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderStateSet::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderStateSet::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Provides a way of specifying the render surface</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderSurfaceSelector```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of specifying the render surface</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">Qt3DRender::QRenderSurfaceSelector</a> can be used to select the surface, where Qt3D renders the content. The surface can either be window surface or offscreen surface. The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">externalRenderTargetSize</a> is used to specify the actual size of the surface when offscreen surface is used.</p>
/// <p>When DPI scaling is used by the system, the logical surface size, which is used by mouse events, and the actual 'physical' size of the surface can differ. The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surfacePixelRatio-prop">surfacePixelRatio</a> is the factor to convert the logical size to the physical size.</p></div>
#[repr(C)]
pub struct QRenderSurfaceSelector {
    _unused: u8,
}
impl QRenderSurfaceSelector {
    /// <p>Sets <i>surfaceObject</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderSurfaceSelector::setSurface` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setSurface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <i>surfaceObject</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surface-prop">surface</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surface-prop">surface</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_surface(&self) -> ::qt_core::Receiver<(*mut ::qt_core::QObject,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSurface(QObject *)\0"),
            )
        }
    }

    /// <p>Holds the surfacePixelRatio of the surface.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderSurfaceSelector::setSurfacePixelRatio` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surfacePixelRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the surfacePixelRatio of the surface.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSurfacePixelRatio</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatioChanged</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_surface_pixel_ratio(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSurfacePixelRatio(float)\0"),
            )
        }
    }

    /// <p>Sets render target <i>size</i> if different than underlying surface size. Tells picking the correct size.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderSurfaceSelector::setExternalRenderTargetSize` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setExternalRenderTargetSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets render target <i>size</i> if different than underlying surface size. Tells picking the correct size.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">externalRenderTargetSize</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">externalRenderTargetSize</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_external_render_target_size(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QSize,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setExternalRenderTargetSize(QSize const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the surface</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderSurfaceSelector::surfaceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surface-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the surface</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QObject *</td><td class="memItemRight bottomAlign"><span class="name"><b>surface</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setSurface">setSurface</a></b></span>(QObject *<i>surfaceObject</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>surfaceChanged</b></span>(QObject *<i>surface</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn surface_changed(&self) -> ::qt_core::Signal<(*mut ::qt_core::QObject,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2surfaceChanged(QObject *)\0"),
            )
        }
    }

    /// <p>Holds the size of the external render target.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderSurfaceSelector::externalRenderTargetSizeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the size of the external render target.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>externalRenderTargetSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setExternalRenderTargetSize">setExternalRenderTargetSize</a></b></span>(const QSize &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>externalRenderTargetSizeChanged</b></span>(const QSize &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn external_render_target_size_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QSize,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2externalRenderTargetSizeChanged(QSize const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the surfacePixelRatio of the surface.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderSurfaceSelector::surfacePixelRatioChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surfacePixelRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the surfacePixelRatio of the surface.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSurfacePixelRatio</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatioChanged</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn surface_pixel_ratio_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2surfacePixelRatioChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Holds the size of the external render target.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize Qt3DRender::QRenderSurfaceSelector::externalRenderTargetSize() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the size of the external render target.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>externalRenderTargetSize</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setExternalRenderTargetSize">setExternalRenderTargetSize</a></b></span>(const QSize &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>externalRenderTargetSizeChanged</b></span>(const QSize &amp;<i>size</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn external_render_target_size(&self) -> ::cpp_core::CppBox<::qt_core::QSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_externalRenderTargetSize(self as *const crate::QRenderSurfaceSelector)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderSurfaceSelector::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_metaObject(
                self as *const crate::QRenderSurfaceSelector,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">QRenderSurfaceSelector</a> with given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderSurfaceSelector::QRenderSurfaceSelector(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#QRenderSurfaceSelector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">QRenderSurfaceSelector</a> with given <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_QRenderSurfaceSelector(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent).as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides a way of specifying the render surface</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderSurfaceSelector::QRenderSurfaceSelector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of specifying the render surface</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">Qt3DRender::QRenderSurfaceSelector</a> can be used to select the surface, where Qt3D renders the content. The surface can either be window surface or offscreen surface. The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">externalRenderTargetSize</a> is used to specify the actual size of the surface when offscreen surface is used.</p>
    /// <p>When DPI scaling is used by the system, the logical surface size, which is used by mouse events, and the actual 'physical' size of the surface can differ. The <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surfacePixelRatio-prop">surfacePixelRatio</a> is the factor to convert the logical size to the physical size.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_QRenderSurfaceSelector1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderSurfaceSelector::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_qt_metacall(
            self as *const crate::QRenderSurfaceSelector as *mut crate::QRenderSurfaceSelector,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderSurfaceSelector::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_qt_metacast(
            self as *const crate::QRenderSurfaceSelector as *mut crate::QRenderSurfaceSelector,
            arg1,
        )
    }

    /// <p>Sets render target <i>size</i> if different than underlying surface size. Tells picking the correct size.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderSurfaceSelector::setExternalRenderTargetSize(const QSize& size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setExternalRenderTargetSize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets render target <i>size</i> if different than underlying surface size. Tells picking the correct size.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">externalRenderTargetSize</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#externalRenderTargetSize-prop">externalRenderTargetSize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_external_render_target_size(
        &self,
        size: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_setExternalRenderTargetSize(self as *const crate::QRenderSurfaceSelector as *mut crate::QRenderSurfaceSelector, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(size).as_raw_ptr())
    }

    /// <p>Sets <i>surfaceObject</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderSurfaceSelector::setSurface(QObject* surfaceObject)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setSurface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets <i>surfaceObject</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surface-prop">surface</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surface-prop">surface</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_surface(
        &self,
        surface_object: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_setSurface(
            self as *const crate::QRenderSurfaceSelector as *mut crate::QRenderSurfaceSelector,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(surface_object)
                .as_raw_ptr() as *mut ::qt_core::QObject,
        )
    }

    /// <p>Holds the surfacePixelRatio of the surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderSurfaceSelector::setSurfacePixelRatio(float ratio)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surfacePixelRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the surfacePixelRatio of the surface.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSurfacePixelRatio</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatioChanged</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_surface_pixel_ratio(&self, ratio: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_setSurfacePixelRatio(
            self as *const crate::QRenderSurfaceSelector as *mut crate::QRenderSurfaceSelector,
            ratio,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the surface</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QObject* Qt3DRender::QRenderSurfaceSelector::surface() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surface-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the surface</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QObject *</td><td class="memItemRight bottomAlign"><span class="name"><b>surface</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#setSurface">setSurface</a></b></span>(QObject *<i>surfaceObject</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>surfaceChanged</b></span>(QObject *<i>surface</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn surface(&self) -> ::qt_core::QPtr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_surface(
                self as *const crate::QRenderSurfaceSelector,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Holds the surfacePixelRatio of the surface.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QRenderSurfaceSelector::surfacePixelRatio() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html#surfacePixelRatio-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the surfacePixelRatio of the surface.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatio</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSurfacePixelRatio</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>surfacePixelRatioChanged</b></span>(float <i>ratio</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn surface_pixel_ratio(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_surfacePixelRatio(
            self as *const crate::QRenderSurfaceSelector,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderSurfaceSelector::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderSurfaceSelector::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> class encapsulates a target (usually a frame buffer object) which the renderer can render into.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderTarget```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> class encapsulates a target (usually a frame buffer object) which the renderer can render into.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">Qt3DRender::QRenderTarget</a> comprises of <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">Qt3DRender::QRenderTargetOutput</a> objects, which specify the the buffers the render target is rendering to. The user can specify MRT(Multiple Render Targets) by attaching multiple textures to different attachment points. The results are undefined if the user tries to attach multiple textures to the same attachment point. At render time, only the draw buffers specified in the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> are used.</p></div>
#[repr(C)]
pub struct QRenderTarget {
    _unused: u8,
}
impl QRenderTarget {
    /// <p>Adds a chosen output via <i>output</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderTarget::addOutput(Qt3DRender::QRenderTargetOutput* output)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html#addOutput">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Adds a chosen output via <i>output</i>.</p></div>
    #[inline(always)]
    pub unsafe fn add_output(
        &self,
        output: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTargetOutput>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_addOutput(
            self as *const crate::QRenderTarget as *mut crate::QRenderTarget,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTargetOutput>>::cast_into(output)
                .as_raw_ptr() as *mut crate::QRenderTargetOutput,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderTarget::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_metaObject(
                self as *const crate::QRenderTarget,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QRenderTarget.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderTarget::QRenderTarget(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html#QRenderTarget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRenderTarget.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_QRenderTarget(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> class encapsulates a target (usually a frame buffer object) which the renderer can render into.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderTarget::QRenderTarget()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> class encapsulates a target (usually a frame buffer object) which the renderer can render into.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">Qt3DRender::QRenderTarget</a> comprises of <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html">Qt3DRender::QRenderTargetOutput</a> objects, which specify the the buffers the render target is rendering to. The user can specify MRT(Multiple Render Targets) by attaching multiple textures to different attachment points. The results are undefined if the user tries to attach multiple textures to the same attachment point. At render time, only the draw buffers specified in the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> are used.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderTarget> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_QRenderTarget1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns the chosen outputs.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*> Qt3DRender::QRenderTarget::outputs() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html#outputs">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the chosen outputs.</p></div>
    #[inline(always)]
    pub unsafe fn outputs(&self) -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_outputs(
                self as *const crate::QRenderTarget,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderTarget::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_qt_metacall(
            self as *const crate::QRenderTarget as *mut crate::QRenderTarget,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderTarget::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_qt_metacast(
            self as *const crate::QRenderTarget as *mut crate::QRenderTarget,
            arg1,
        )
    }

    /// <p>Removes a chosen output via <i>output</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderTarget::removeOutput(Qt3DRender::QRenderTargetOutput* output)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html#removeOutput">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a chosen output via <i>output</i>.</p></div>
    #[inline(always)]
    pub unsafe fn remove_output(
        &self,
        output: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTargetOutput>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_removeOutput(
            self as *const crate::QRenderTarget as *mut crate::QRenderTarget,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTargetOutput>>::cast_into(output)
                .as_raw_ptr() as *mut crate::QRenderTargetOutput,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderTarget::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderTarget::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Provides a way of specifying a render target</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRenderTargetSelector```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of specifying a render target</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> is used to select active <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">Qt3DRender::QRenderTarget</a> for the FrameGraph. When <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">QRenderTargetSelector</a> is present in the FrameGraph, the rendering is directed into QTexture objects or draw buffers instead of the surface specified in the <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">Qt3DRender::QRenderSurfaceSelector</a>. A render buffer is automatically generated for an attachment point if drawBuffers contain attachment point that any output in the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> do not specify. If the drawBuffers is empty, the renderer will default to using all the outputs in <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a>.</p></div>
#[repr(C)]
pub struct QRenderTargetSelector {
    _unused: u8,
}
impl QRenderTargetSelector {
    /// <p>Holds the current render target</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRenderTargetSelector::setTarget` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#target-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render target</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b>target</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTarget</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>targetChanged</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_target(&self) -> ::qt_core::Receiver<(*mut crate::QRenderTarget,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setTarget(Qt3DRender::QRenderTarget *)\0",
                ),
            )
        }
    }

    /// <p>Holds the current render target</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRenderTargetSelector::targetChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#target-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render target</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b>target</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTarget</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>targetChanged</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn target_changed(&self) -> ::qt_core::Signal<(*mut crate::QRenderTarget,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2targetChanged(Qt3DRender::QRenderTarget *)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRenderTargetSelector::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_metaObject(
                self as *const crate::QRenderTargetSelector,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QRenderTargetSelector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderTargetSelector::QRenderTargetSelector(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#QRenderTargetSelector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRenderTargetSelector.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_QRenderTargetSelector(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent).as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides a way of specifying a render target</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRenderTargetSelector::QRenderTargetSelector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of specifying a render target</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> is used to select active <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">Qt3DRender::QRenderTarget</a> for the FrameGraph. When <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">QRenderTargetSelector</a> is present in the FrameGraph, the rendering is directed into QTexture objects or draw buffers instead of the surface specified in the <a href="http://doc.qt.io/qt-5/qt3drender-qrendersurfaceselector.html">Qt3DRender::QRenderSurfaceSelector</a>. A render buffer is automatically generated for an attachment point if drawBuffers contain attachment point that any output in the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> do not specify. If the drawBuffers is empty, the renderer will default to using all the outputs in <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_QRenderTargetSelector1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns the list of draw buffers for the current <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint> Qt3DRender::QRenderTargetSelector::outputs() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#outputs">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of draw buffers for the current <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> instance.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#setOutputs">setOutputs</a>().</p></div>
    #[inline(always)]
    pub unsafe fn outputs(&self) -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_outputs(
                self as *const crate::QRenderTargetSelector,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRenderTargetSelector::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_qt_metacall(
            self as *const crate::QRenderTargetSelector as *mut crate::QRenderTargetSelector,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRenderTargetSelector::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_qt_metacast(
            self as *const crate::QRenderTargetSelector as *mut crate::QRenderTargetSelector,
            arg1,
        )
    }

    /// <p>Sets the draw <i>buffers</i> to be used. The draw buffers should be matching the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#AttachmentPoint-enum">Qt3DRender::QRenderTargetOutput::AttachmentPoint</a> defined in the attachments of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">Qt3DRender::QRenderTarget</a> associated to the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QRenderTargetSelector::setOutputs(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& buffers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#setOutputs">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the draw <i>buffers</i> to be used. The draw buffers should be matching the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetoutput.html#AttachmentPoint-enum">Qt3DRender::QRenderTargetOutput::AttachmentPoint</a> defined in the attachments of the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">Qt3DRender::QRenderTarget</a> associated to the <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html">Qt3DRender::QRenderTargetSelector</a> instance.</p>
    /// <p><b>Note: </b>At render time, if no draw buffer has been specified, the renderer will default to using all the attachments' draw buffers.</p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#outputs">outputs</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_outputs(
        &self,
        buffers: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_setOutputs(
            self as *const crate::QRenderTargetSelector as *mut crate::QRenderTargetSelector,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(
                buffers,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the current render target</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRenderTargetSelector::setTarget(Qt3DRender::QRenderTarget* target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#target-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render target</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b>target</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTarget</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>targetChanged</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_target(
        &self,
        target: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTarget>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_setTarget(
            self as *const crate::QRenderTargetSelector as *mut crate::QRenderTargetSelector,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTarget>>::cast_into(target)
                .as_raw_ptr() as *mut crate::QRenderTarget,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the current render target</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* Qt3DRender::QRenderTargetSelector::target() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendertargetselector.html#target-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the current render target</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b>target</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTarget</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>targetChanged</b></span>(QRenderTarget *<i>target</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn target(&self) -> ::qt_core::QPtr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_target(
                self as *const crate::QRenderTargetSelector,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderTargetSelector::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRenderTargetSelector::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_scene_loader {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QSceneLoader```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QSceneLoader::Status```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Status(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Status {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Status(value)
        }
    }

    impl From<Status> for ::std::os::raw::c_int {
        fn from(value: Status) -> Self {
            value.0
        }
    }

    impl Status {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Status {
        /// C++ enum variant: <span style='color: green;'>```None = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const None: crate::q_scene_loader::Status = crate::q_scene_loader::Status(0);
        /// C++ enum variant: <span style='color: green;'>```Loading = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Loading: crate::q_scene_loader::Status = crate::q_scene_loader::Status(1);
        /// C++ enum variant: <span style='color: green;'>```Ready = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Ready: crate::q_scene_loader::Status = crate::q_scene_loader::Status(2);
        /// C++ enum variant: <span style='color: green;'>```Error = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const Error: crate::q_scene_loader::Status = crate::q_scene_loader::Status(3);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QSceneLoader::ComponentType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ComponentType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ComponentType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ComponentType(value)
        }
    }

    impl From<ComponentType> for ::std::os::raw::c_int {
        fn from(value: ComponentType) -> Self {
            value.0
        }
    }

    impl ComponentType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ComponentType {
        /// C++ enum variant: <span style='color: green;'>```UnknownComponent = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const UnknownComponent: crate::q_scene_loader::ComponentType =
            crate::q_scene_loader::ComponentType(0);
        /// C++ enum variant: <span style='color: green;'>```GeometryRendererComponent = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const GeometryRendererComponent: crate::q_scene_loader::ComponentType =
            crate::q_scene_loader::ComponentType(1);
        /// C++ enum variant: <span style='color: green;'>```TransformComponent = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const TransformComponent: crate::q_scene_loader::ComponentType =
            crate::q_scene_loader::ComponentType(2);
        /// C++ enum variant: <span style='color: green;'>```MaterialComponent = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const MaterialComponent: crate::q_scene_loader::ComponentType =
            crate::q_scene_loader::ComponentType(3);
        /// C++ enum variant: <span style='color: green;'>```LightComponent = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const LightComponent: crate::q_scene_loader::ComponentType =
            crate::q_scene_loader::ComponentType(4);
        /// C++ enum variant: <span style='color: green;'>```CameraLensComponent = 5```</span>
        #[allow(non_upper_case_globals)]
        pub const CameraLensComponent: crate::q_scene_loader::ComponentType =
            crate::q_scene_loader::ComponentType(5);
    }
}
/// <p>Provides the facility to load an existing Scene</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QSceneLoader```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides the facility to load an existing Scene</p>
/// <p>Given a 3D source file, the <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> will try to parse it and build a tree of <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">Qt3DCore::QEntity</a> objects with proper <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">Qt3DRender::QGeometryRenderer</a>, <a href="http://doc.qt.io/qt-5/qt3dcore-qtransform.html">Qt3DCore::QTransform</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">Qt3DRender::QMaterial</a> components.</p>
/// <p>The loader will try to determine the best material to be used based on the properties of the model file. If you wish to use a custom material, you will have to traverse the tree and replace the default associated materials with yours.</p>
/// <p>As the name implies, <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> loads a complete scene subtree. If you wish to load a single piece of geometry, you should rather use the <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">Qt3DRender::QMesh</a> instead.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> internally relies on the use of plugins to support a wide variety of 3D file formats. <a href="http://www.assimp.org/main_features_formats.html">Here</a> is a list of formats that are supported by Qt3D.</p>
/// <p><b>Note: </b>this component shouldn't be shared among several <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">Qt3DCore::QEntity</a> instances. Undefined behavior will result.</p></div>
#[repr(C)]
pub struct QSceneLoader {
    _unused: u8,
}
impl QSceneLoader {
    /// <p>Holds the url to the source to be loaded.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSceneLoader::setSource` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the url to the source to be loaded.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_source(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSource(QUrl const &)\0"),
            )
        }
    }

    /// Returns a built-in Qt slot `Qt3DRender::QSceneLoader::setStatus` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    pub fn slot_set_status(&self) -> ::qt_core::Receiver<(crate::q_scene_loader::Status,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setStatus(Qt3DRender::QSceneLoader::Status)\0",
                ),
            )
        }
    }

    /// <p>Holds the url to the source to be loaded.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSceneLoader::sourceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the url to the source to be loaded.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn source_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2sourceChanged(QUrl const &)\0"),
            )
        }
    }

    /// <p>Holds the status of scene loading.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSceneLoader::statusChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the status of scene loading.</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.None</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.Loading</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.Ready</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.Error</li>
    /// </ul>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b>status</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#Status-enum">Qt3DRender::QSceneLoader::Status</a>.</p></div>
    #[inline(always)]
    pub fn status_changed(&self) -> ::qt_core::Signal<(crate::q_scene_loader::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2statusChanged(Qt3DRender::QSceneLoader::Status)\0",
                ),
            )
        }
    }

    /// <p>Returns a component matching <i>componentType</i> of a loaded entity with an <a href="http://doc.qt.io/qt-5/qobject.html#objectName-prop">objectName</a> matching the <i>entityName</i>. If the entity has multiple matching components, the first match in the component list of the entity is returned. If there is no match, a null pointer is returned.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* Qt3DRender::QSceneLoader::component(const QString& entityName, Qt3DRender::QSceneLoader::ComponentType componentType) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#component">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a component matching <i>componentType</i> of a loaded entity with an <a href="http://doc.qt.io/qt-5/qobject.html#objectName-prop">objectName</a> matching the <i>entityName</i>. If the entity has multiple matching components, the first match in the component list of the entity is returned. If there is no match, a null pointer is returned.</p></div>
    #[inline(always)]
    pub unsafe fn component(
        &self,
        entity_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
        component_type: crate::q_scene_loader::ComponentType,
    ) -> ::qt_core::QPtr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_component(
                self as *const crate::QSceneLoader,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(entity_name)
                    .as_raw_ptr(),
                component_type,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns a loaded entity with an <code>objectName</code> matching the <i>entityName</i> parameter. If multiple entities have the same name, it is undefined which one of them is returned, but it will always be the same one.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QEntity* Qt3DRender::QSceneLoader::entity(const QString& entityName) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#entity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a loaded entity with an <code>objectName</code> matching the <i>entityName</i> parameter. If multiple entities have the same name, it is undefined which one of them is returned, but it will always be the same one.</p></div>
    #[inline(always)]
    pub unsafe fn entity(
        &self,
        entity_name: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QString>>,
    ) -> ::qt_core::QPtr<::qt_3d_core::QEntity> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_entity(
                self as *const crate::QSceneLoader,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QString>>::cast_into(entity_name)
                    .as_raw_ptr(),
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns a list of the <code>objectNames</code> of the loaded entities.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList Qt3DRender::QSceneLoader::entityNames() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#entityNames">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a list of the <code>objectNames</code> of the loaded entities.</p></div>
    #[inline(always)]
    pub unsafe fn entity_names(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_entityNames(
                self as *const crate::QSceneLoader,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QSceneLoader::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_metaObject(
                self as *const crate::QSceneLoader,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QSceneLoader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSceneLoader::QSceneLoader(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#QSceneLoader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QSceneLoader.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QSceneLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_QSceneLoader(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides the facility to load an existing Scene</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSceneLoader::QSceneLoader()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides the facility to load an existing Scene</p>
    /// <p>Given a 3D source file, the <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> will try to parse it and build a tree of <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">Qt3DCore::QEntity</a> objects with proper <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryrenderer.html">Qt3DRender::QGeometryRenderer</a>, <a href="http://doc.qt.io/qt-5/qt3dcore-qtransform.html">Qt3DCore::QTransform</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html">Qt3DRender::QMaterial</a> components.</p>
    /// <p>The loader will try to determine the best material to be used based on the properties of the model file. If you wish to use a custom material, you will have to traverse the tree and replace the default associated materials with yours.</p>
    /// <p>As the name implies, <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> loads a complete scene subtree. If you wish to load a single piece of geometry, you should rather use the <a href="http://doc.qt.io/qt-5/qt3drender-qmesh.html">Qt3DRender::QMesh</a> instead.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html">Qt3DRender::QSceneLoader</a> internally relies on the use of plugins to support a wide variety of 3D file formats. <a href="http://www.assimp.org/main_features_formats.html">Here</a> is a list of formats that are supported by Qt3D.</p>
    /// <p><b>Note: </b>this component shouldn't be shared among several <a href="http://doc.qt.io/qt-5/qt3dcore-qentity.html">Qt3DCore::QEntity</a> instances. Undefined behavior will result.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QSceneLoader> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_QSceneLoader1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QSceneLoader::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_qt_metacall(
            self as *const crate::QSceneLoader as *mut crate::QSceneLoader,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QSceneLoader::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_qt_metacast(
            self as *const crate::QSceneLoader as *mut crate::QSceneLoader,
            arg1,
        )
    }

    /// <p>Holds the url to the source to be loaded.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSceneLoader::setSource(const QUrl& arg)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the url to the source to be loaded.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_source(
        &self,
        arg: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_setSource(
            self as *const crate::QSceneLoader as *mut crate::QSceneLoader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(arg).as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSceneLoader::setStatus(Qt3DRender::QSceneLoader::Status status)```</span>.
    #[inline(always)]
    pub unsafe fn set_status(&self, status: crate::q_scene_loader::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_setStatus(
            self as *const crate::QSceneLoader as *mut crate::QSceneLoader,
            status,
        )
    }

    /// <p>Holds the url to the source to be loaded.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QSceneLoader::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the url to the source to be loaded.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSource</b></span>(const QUrl &amp;<i>arg</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_source(
                self as *const crate::QSceneLoader,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the status of scene loading.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSceneLoader::Status Qt3DRender::QSceneLoader::status() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the status of scene loading.</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.None</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.Loading</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.Ready</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-sceneloader.html">SceneLoader</a>.Error</li>
    /// </ul>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b>status</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qsceneloader.html#Status-enum">Qt3DRender::QSceneLoader::Status</a>.</p></div>
    #[inline(always)]
    pub unsafe fn status(&self) -> crate::q_scene_loader::Status {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_status(
            self as *const crate::QSceneLoader,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSceneLoader::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSceneLoader::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">QScissorTest</a> class discards fragments that fall outside of a certain rectangular portion of the screen.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QScissorTest```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">QScissorTest</a> class discards fragments that fall outside of a certain rectangular portion of the screen.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">QScissorTest</a> class enables scissor test, which discards fragments outside the rectangular area of the screen specified by the left, bottom, width and height properties.</p></div>
#[repr(C)]
pub struct QScissorTest {
    _unused: u8,
}
impl QScissorTest {
    /// <p>Holds the left coordinate of the scissor box.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QScissorTest::setLeft` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the left coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLeft</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_left(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLeft(int)\0"),
            )
        }
    }

    /// <p>Holds the bottom coordinate of the scissor box.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QScissorTest::setBottom` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the bottom coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_bottom(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setBottom(int)\0"),
            )
        }
    }

    /// <p>Holds the width of the scissor box.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QScissorTest::setWidth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the width of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_width(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setWidth(int)\0"),
            )
        }
    }

    /// <p>Holds the height of the scissor box.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QScissorTest::setHeight` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the height of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_height(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setHeight(int)\0"),
            )
        }
    }

    /// <p>Holds the left coordinate of the scissor box.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QScissorTest::leftChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the left coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLeft</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn left_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2leftChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the bottom coordinate of the scissor box.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QScissorTest::bottomChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the bottom coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn bottom_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2bottomChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the width of the scissor box.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QScissorTest::widthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the width of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn width_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2widthChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the height of the scissor box.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QScissorTest::heightChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the height of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn height_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2heightChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the bottom coordinate of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QScissorTest::bottom() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the bottom coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn bottom(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_bottom(
            self as *const crate::QScissorTest,
        )
    }

    /// <p>Holds the height of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QScissorTest::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the height of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_height(
            self as *const crate::QScissorTest,
        )
    }

    /// <p>Holds the left coordinate of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QScissorTest::left() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the left coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLeft</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn left(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_left(
            self as *const crate::QScissorTest,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QScissorTest::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_metaObject(
                self as *const crate::QScissorTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QScissorTest.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QScissorTest::QScissorTest(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#QScissorTest">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QScissorTest.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QScissorTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_QScissorTest(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">QScissorTest</a> class discards fragments that fall outside of a certain rectangular portion of the screen.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QScissorTest::QScissorTest()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">QScissorTest</a> class discards fragments that fall outside of a certain rectangular portion of the screen.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html">QScissorTest</a> class enables scissor test, which discards fragments outside the rectangular area of the screen specified by the left, bottom, width and height properties.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QScissorTest> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_QScissorTest1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QScissorTest::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_qt_metacall(
            self as *const crate::QScissorTest as *mut crate::QScissorTest,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QScissorTest::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_qt_metacast(
            self as *const crate::QScissorTest as *mut crate::QScissorTest,
            arg1,
        )
    }

    /// <p>Holds the bottom coordinate of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QScissorTest::setBottom(int bottom)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#bottom-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the bottom coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>bottom</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBottom</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>bottomChanged</b></span>(int <i>bottom</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_bottom(&self, bottom: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_setBottom(
            self as *const crate::QScissorTest as *mut crate::QScissorTest,
            bottom,
        )
    }

    /// <p>Holds the height of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QScissorTest::setHeight(int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#height-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the height of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>height</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHeight</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>heightChanged</b></span>(int <i>height</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_height(&self, height: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_setHeight(
            self as *const crate::QScissorTest as *mut crate::QScissorTest,
            height,
        )
    }

    /// <p>Holds the left coordinate of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QScissorTest::setLeft(int left)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#left-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the left coordinate of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>left</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLeft</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>leftChanged</b></span>(int <i>left</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_left(&self, left: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_setLeft(
            self as *const crate::QScissorTest as *mut crate::QScissorTest,
            left,
        )
    }

    /// <p>Holds the width of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QScissorTest::setWidth(int width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the width of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_width(&self, width: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_setWidth(
            self as *const crate::QScissorTest as *mut crate::QScissorTest,
            width,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QScissorTest::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QScissorTest::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the width of the scissor box.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QScissorTest::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscissortest.html#width-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the width of the scissor box.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>width</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWidth</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>widthChanged</b></span>(int <i>width</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_width(
            self as *const crate::QScissorTest,
        )
    }
}

/// <p>Enables seamless cubemap texture filtering.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QSeamlessCubemap```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qseamlesscubemap.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables seamless cubemap texture filtering.</p>
/// <p>When present in a state set, enables the seamless cubemap texture filtering as provided by the GL_ARB_seamless_cubemap extension (if available).</p></div>
#[repr(C)]
pub struct QSeamlessCubemap {
    _unused: u8,
}
impl QSeamlessCubemap {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QSeamlessCubemap::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_metaObject(
                self as *const crate::QSeamlessCubemap,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QSeamlessCubemap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSeamlessCubemap::QSeamlessCubemap(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qseamlesscubemap.html#QSeamlessCubemap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QSeamlessCubemap.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QSeamlessCubemap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_QSeamlessCubemap(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Enables seamless cubemap texture filtering.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSeamlessCubemap::QSeamlessCubemap()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qseamlesscubemap.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Enables seamless cubemap texture filtering.</p>
    /// <p>When present in a state set, enables the seamless cubemap texture filtering as provided by the GL_ARB_seamless_cubemap extension (if available).</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QSeamlessCubemap> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_QSeamlessCubemap1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QSeamlessCubemap::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_qt_metacall(
            self as *const crate::QSeamlessCubemap as *mut crate::QSeamlessCubemap,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QSeamlessCubemap::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_qt_metacast(
            self as *const crate::QSeamlessCubemap as *mut crate::QSeamlessCubemap,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSeamlessCubemap::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSeamlessCubemap::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// C++ class: <span style='color: green;'>```Qt3DRender::PropertyReaderInterface```</span>.
#[repr(C)]
pub struct PropertyReaderInterface {
    _unused: u8,
}
impl PropertyReaderInterface {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::PropertyReaderInterface& Qt3DRender::PropertyReaderInterface::operator=(const Qt3DRender::PropertyReaderInterface& other)```</span>.
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::PropertyReaderInterface>>,
    ) -> ::cpp_core::Ref<crate::PropertyReaderInterface> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_PropertyReaderInterface_operator_(
                self as *const crate::PropertyReaderInterface
                    as *mut crate::PropertyReaderInterface,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::PropertyReaderInterface>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the property identifies by <i>v</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual QVariant Qt3DRender::PropertyReaderInterface::readProperty(const QVariant& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-propertyreaderinterface.html#readProperty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the property identifies by <i>v</i></p></div>
    #[inline(always)]
    pub unsafe fn read_property(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_PropertyReaderInterface_readProperty(
                self as *const crate::PropertyReaderInterface
                    as *mut crate::PropertyReaderInterface,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Provides a way of specifying values of a Uniform Block or a shader structure.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QShaderData```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of specifying values of a Uniform Block or a shader structure.</p>
/// <p><b>Note: </b>When subclassing and adding properties to <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">QShaderData</a>, note that if you need to nest an inner <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">Qt3DRender::QShaderData</a>, the data type of the property should be <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">Qt3DRender::QShaderData</a>* instead of the name of your subclass.</p></div>
#[repr(C)]
pub struct QShaderData {
    _unused: u8,
}
impl QShaderData {
    /// Calls C++ function: <span style='color: green;'>```virtual bool Qt3DRender::QShaderData::event(QEvent* event)```</span>.
    #[inline(always)]
    pub unsafe fn event(
        &self,
        event: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QEvent>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_event(
            self as *const crate::QShaderData as *mut crate::QShaderData,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QEvent>>::cast_into(event)
                .as_raw_ptr() as *mut ::qt_core::QEvent,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QShaderData::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_metaObject(
                self as *const crate::QShaderData,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QShaderData.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderData::QShaderData(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html#QShaderData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QShaderData.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QShaderData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_QShaderData(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides a way of specifying values of a Uniform Block or a shader structure.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderData::QShaderData()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides a way of specifying values of a Uniform Block or a shader structure.</p>
    /// <p><b>Note: </b>When subclassing and adding properties to <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">QShaderData</a>, note that if you need to nest an inner <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">Qt3DRender::QShaderData</a>, the data type of the property should be <a href="http://doc.qt.io/qt-5/qt3drender-qshaderdata.html">Qt3DRender::QShaderData</a>* instead of the name of your subclass.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QShaderData> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_QShaderData1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QShaderData::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_qt_metacall(
            self as *const crate::QShaderData as *mut crate::QShaderData,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QShaderData::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_qt_metacast(
            self as *const crate::QShaderData as *mut crate::QShaderData,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderData::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderData::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_sort_policy {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QSortPolicy```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct SortType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for SortType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            SortType(value)
        }
    }

    impl From<SortType> for ::std::os::raw::c_int {
        fn from(value: SortType) -> Self {
            value.0
        }
    }

    impl SortType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl SortType {
        /// C++ enum variant: <span style='color: green;'>```StateChangeCost = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const StateChangeCost: crate::q_sort_policy::SortType =
            crate::q_sort_policy::SortType(1);
        /// C++ enum variant: <span style='color: green;'>```BackToFront = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const BackToFront: crate::q_sort_policy::SortType = crate::q_sort_policy::SortType(2);
        /// C++ enum variant: <span style='color: green;'>```Material = 4```</span>
        #[allow(non_upper_case_globals)]
        pub const Material: crate::q_sort_policy::SortType = crate::q_sort_policy::SortType(4);
        /// C++ enum variant: <span style='color: green;'>```FrontToBack = 8```</span>
        #[allow(non_upper_case_globals)]
        pub const FrontToBack: crate::q_sort_policy::SortType = crate::q_sort_policy::SortType(8);
        /// C++ enum variant: <span style='color: green;'>```Texture = 16```</span>
        #[allow(non_upper_case_globals)]
        pub const Texture: crate::q_sort_policy::SortType = crate::q_sort_policy::SortType(16);
    }
}
/// <p>Provides storage for the sort types to be used</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QSortPolicy```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides storage for the sort types to be used</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">Qt3DRender::QSortPolicy</a> class stores the sorting type used by the FrameGraph. The sort types determine how drawable entities are sorted before drawing to determine the drawing order. When <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">QSortPolicy</a> is present in the FrameGraph, the sorting mechanism is determined by the SortTypes list. Multiple sort types can be used simultaneously. If <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">QSortPolicy</a> is not present in the FrameGraph, entities are drawn in the order they appear in the entity hierarchy.</p></div>
#[repr(C)]
pub struct QSortPolicy {
    _unused: u8,
}
impl QSortPolicy {
    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSortPolicy::setSortTypes` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_sort_types(&self) -> ::qt_core::Receiver<(*const ::qt_core::QVectorOfInt,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setSortTypes(QVector< int > const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSortPolicy::sortTypesChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn sort_types_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QVectorOfInt,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2sortTypesChanged(QVector< int > const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSortPolicy::setSortTypes` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_sort_types2(&self) -> ::qt_core::Receiver<(*const crate::QVectorOfSortType,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setSortTypes(QVector< Qt3DRender::QSortPolicy::SortType > const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSortPolicy::sortTypesChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn sort_types_changed2(&self) -> ::qt_core::Signal<(*const crate::QVectorOfSortType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2sortTypesChanged(QVector< Qt3DRender::QSortPolicy::SortType > const &)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QSortPolicy::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_metaObject(
                self as *const crate::QSortPolicy,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QSortPolicy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSortPolicy::QSortPolicy(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#QSortPolicy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QSortPolicy.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QSortPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_QSortPolicy(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Provides storage for the sort types to be used</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSortPolicy::QSortPolicy()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides storage for the sort types to be used</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">Qt3DRender::QSortPolicy</a> class stores the sorting type used by the FrameGraph. The sort types determine how drawable entities are sorted before drawing to determine the drawing order. When <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">QSortPolicy</a> is present in the FrameGraph, the sorting mechanism is determined by the SortTypes list. Multiple sort types can be used simultaneously. If <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html">QSortPolicy</a> is not present in the FrameGraph, entities are drawn in the order they appear in the entity hierarchy.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QSortPolicy> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_QSortPolicy1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QSortPolicy::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_qt_metacall(
            self as *const crate::QSortPolicy as *mut crate::QSortPolicy,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QSortPolicy::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_qt_metacast(
            self as *const crate::QSortPolicy as *mut crate::QSortPolicy,
            arg1,
        )
    }

    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSortPolicy::setSortTypes(const QVector<Qt3DRender::QSortPolicy::SortType>& sortTypes)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_sort_types_q_vector_of_sort_type(
        &self,
        sort_types: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_setSortTypes(
            self as *const crate::QSortPolicy as *mut crate::QSortPolicy,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(
                sort_types,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSortPolicy::setSortTypes(const QVector<int>& sortTypesInt)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_sort_types_q_vector_of_int(
        &self,
        sort_types_int: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfInt>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_setSortTypes1(
            self as *const crate::QSortPolicy as *mut crate::QSortPolicy,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfInt>>::cast_into(
                sort_types_int,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType> Qt3DRender::QSortPolicy::sortTypes() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn sort_types(&self) -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_sortTypes(
                self as *const crate::QSortPolicy,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the sorting types to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<int> Qt3DRender::QSortPolicy::sortTypesInt() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsortpolicy.html#sortTypes-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the sorting types to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector&lt;int&gt; </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesInt</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSortTypes</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypesInt</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;SortType&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sortTypesChanged</b></span>(const QVector&lt;int&gt; &amp;<i>sortTypes</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn sort_types_int(&self) -> ::cpp_core::CppBox<::qt_core::QVectorOfInt> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_sortTypesInt(
                self as *const crate::QSortPolicy,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSortPolicy::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSortPolicy::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Encapsulate a Spot Light object in a Qt 3D scene.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QSpotLight```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate a Spot Light object in a Qt 3D scene.</p></div>
#[repr(C)]
pub struct QSpotLight {
    _unused: u8,
}
impl QSpotLight {
    /// <p>Specifies the constant attenuation of the spot light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSpotLight::setConstantAttenuation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_constant_attenuation(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setConstantAttenuation(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the linear attenuation of the spot light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSpotLight::setLinearAttenuation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_linear_attenuation(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLinearAttenuation(float)\0"),
            )
        }
    }

    /// <p>Specifies the quadratic attenuation of the spot light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSpotLight::setQuadraticAttenuation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_quadratic_attenuation(
        &self,
    ) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setQuadraticAttenuation(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the local direction of the spot light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSpotLight::setLocalDirection` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#localDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the local direction of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLocalDirection</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirectionChanged</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_local_direction(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setLocalDirection(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the cut off angle of the spot light</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSpotLight::setCutOffAngle` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#cutOffAngle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the cut off angle of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngle</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCutOffAngle</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngleChanged</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_cut_off_angle(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setCutOffAngle(float)\0"),
            )
        }
    }

    /// <p>Specifies the constant attenuation of the spot light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSpotLight::constantAttenuationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn constant_attenuation_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2constantAttenuationChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the linear attenuation of the spot light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSpotLight::linearAttenuationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn linear_attenuation_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2linearAttenuationChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the quadratic attenuation of the spot light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSpotLight::quadraticAttenuationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn quadratic_attenuation_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2quadraticAttenuationChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Specifies the local direction of the spot light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSpotLight::localDirectionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#localDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the local direction of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLocalDirection</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirectionChanged</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn local_direction_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2localDirectionChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the cut off angle of the spot light</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSpotLight::cutOffAngleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#cutOffAngle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the cut off angle of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngle</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCutOffAngle</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngleChanged</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn cut_off_angle_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2cutOffAngleChanged(float)\0"),
            )
        }
    }

    /// <p>Specifies the constant attenuation of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QSpotLight::constantAttenuation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn constant_attenuation(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_constantAttenuation(
            self as *const crate::QSpotLight,
        )
    }

    /// <p>Specifies the cut off angle of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QSpotLight::cutOffAngle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#cutOffAngle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the cut off angle of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngle</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCutOffAngle</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngleChanged</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn cut_off_angle(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_cutOffAngle(
            self as *const crate::QSpotLight,
        )
    }

    /// <p>Specifies the linear attenuation of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QSpotLight::linearAttenuation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn linear_attenuation(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_linearAttenuation(
            self as *const crate::QSpotLight,
        )
    }

    /// <p>Specifies the local direction of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QSpotLight::localDirection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#localDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the local direction of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLocalDirection</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirectionChanged</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn local_direction(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_localDirection(
                self as *const crate::QSpotLight,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QSpotLight::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_metaObject(
                self as *const crate::QSpotLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html">QSpotLight</a> with the specified <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSpotLight::QSpotLight(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#QSpotLight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html">QSpotLight</a> with the specified <i>parent</i>.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_QSpotLight(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulate a Spot Light object in a Qt 3D scene.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSpotLight::QSpotLight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulate a Spot Light object in a Qt 3D scene.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QSpotLight> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_QSpotLight1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QSpotLight::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_qt_metacall(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QSpotLight::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_qt_metacast(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
            arg1,
        )
    }

    /// <p>Specifies the quadratic attenuation of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QSpotLight::quadraticAttenuation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn quadratic_attenuation(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_quadraticAttenuation(
            self as *const crate::QSpotLight,
        )
    }

    /// <p>Specifies the constant attenuation of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSpotLight::setConstantAttenuation(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#constantAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the constant attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setConstantAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>constantAttenuationChanged</b></span>(float <i>constantAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_constant_attenuation(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_setConstantAttenuation(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
            value,
        )
    }

    /// <p>Specifies the cut off angle of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSpotLight::setCutOffAngle(float cutOffAngle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#cutOffAngle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the cut off angle of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngle</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setCutOffAngle</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>cutOffAngleChanged</b></span>(float <i>cutOffAngle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_cut_off_angle(&self, cut_off_angle: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_setCutOffAngle(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
            cut_off_angle,
        )
    }

    /// <p>Specifies the linear attenuation of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSpotLight::setLinearAttenuation(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#linearAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the linear attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLinearAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>linearAttenuationChanged</b></span>(float <i>linearAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_linear_attenuation(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_setLinearAttenuation(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
            value,
        )
    }

    /// <p>Specifies the local direction of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSpotLight::setLocalDirection(const QVector3D& localDirection)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#localDirection-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the local direction of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirection</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLocalDirection</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>localDirectionChanged</b></span>(const QVector3D &amp;<i>localDirection</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_local_direction(
        &self,
        local_direction: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_setLocalDirection(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                local_direction,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Specifies the quadratic attenuation of the spot light</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSpotLight::setQuadraticAttenuation(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qspotlight.html#quadraticAttenuation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the quadratic attenuation of the spot light</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setQuadraticAttenuation</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>quadraticAttenuationChanged</b></span>(float <i>quadraticAttenuation</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_quadratic_attenuation(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_setQuadraticAttenuation(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
            value,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSpotLight::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSpotLight::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">QStencilMask</a> class controls the front and back writing of individual bits in the stencil planes.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QStencilMask```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">QStencilMask</a> class controls the front and back writing of individual bits in the stencil planes.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">Qt3DRender::QStencilMask</a> class specifies a write mask for the stencil values after the stencil test. Mask can be specified separately for the front-facing and back-facing polygons. The fragment stencil value is and'd with the mask before it is written to the stencil buffer.</p></div>
#[repr(C)]
pub struct QStencilMask {
    _unused: u8,
}
impl QStencilMask {
    /// <p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilMask::setFrontOutputMask` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#frontOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFrontOutputMask</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMaskChanged</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_front_output_mask(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFrontOutputMask(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilMask::setBackOutputMask` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#backOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBackOutputMask</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMaskChanged</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_back_output_mask(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setBackOutputMask(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilMask::frontOutputMaskChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#frontOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFrontOutputMask</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMaskChanged</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn front_output_mask_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2frontOutputMaskChanged(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilMask::backOutputMaskChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#backOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBackOutputMask</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMaskChanged</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn back_output_mask_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2backOutputMaskChanged(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QStencilMask::backOutputMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#backOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBackOutputMask</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMaskChanged</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn back_output_mask(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_backOutputMask(
            self as *const crate::QStencilMask,
        )
    }

    /// <p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QStencilMask::frontOutputMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#frontOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFrontOutputMask</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMaskChanged</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn front_output_mask(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_frontOutputMask(
            self as *const crate::QStencilMask,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QStencilMask::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_metaObject(
                self as *const crate::QStencilMask,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QStencilMask.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QStencilMask::QStencilMask(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#QStencilMask">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QStencilMask.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QStencilMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_QStencilMask(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">QStencilMask</a> class controls the front and back writing of individual bits in the stencil planes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QStencilMask::QStencilMask()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">QStencilMask</a> class controls the front and back writing of individual bits in the stencil planes.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html">Qt3DRender::QStencilMask</a> class specifies a write mask for the stencil values after the stencil test. Mask can be specified separately for the front-facing and back-facing polygons. The fragment stencil value is and'd with the mask before it is written to the stencil buffer.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QStencilMask> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_QStencilMask1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QStencilMask::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_qt_metacall(
            self as *const crate::QStencilMask as *mut crate::QStencilMask,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QStencilMask::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_qt_metacast(
            self as *const crate::QStencilMask as *mut crate::QStencilMask,
            arg1,
        )
    }

    /// <p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilMask::setBackOutputMask(unsigned int backOutputMask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#backOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for back-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBackOutputMask</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>backOutputMaskChanged</b></span>(uint <i>backOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_back_output_mask(&self, back_output_mask: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_setBackOutputMask(
            self as *const crate::QStencilMask as *mut crate::QStencilMask,
            back_output_mask,
        )
    }

    /// <p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilMask::setFrontOutputMask(unsigned int frontOutputMask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstencilmask.html#frontOutputMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the write mask for the fragment stencil values for front-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFrontOutputMask</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>frontOutputMaskChanged</b></span>(uint <i>frontOutputMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_front_output_mask(&self, front_output_mask: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_setFrontOutputMask(
            self as *const crate::QStencilMask as *mut crate::QStencilMask,
            front_output_mask,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilMask::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilMask::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">QStencilOperation</a> class specifies stencil operation</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QStencilOperation```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">QStencilOperation</a> class specifies stencil operation</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">Qt3DRender::QStencilOperation</a> class specifies the stencil operations for the front- and back-facing polygons. The stencil operation control what is done to fragment when the stencil and depth test pass or fail.</p></div>
#[repr(C)]
pub struct QStencilOperation {
    _unused: u8,
}
impl QStencilOperation {
    /// <p>Holds the stencil operation arguments for back-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments* Qt3DRender::QStencilOperation::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html#back-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil operation arguments for back-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStencilOperationArguments *</td><td class="memItemRight bottomAlign"><span class="name"><b>back</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::qt_core::QPtr<crate::QStencilOperationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_back(
                self as *const crate::QStencilOperation,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Holds the stencil operation arguments for front-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments* Qt3DRender::QStencilOperation::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html#front-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil operation arguments for front-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStencilOperationArguments *</td><td class="memItemRight bottomAlign"><span class="name"><b>front</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::qt_core::QPtr<crate::QStencilOperationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_front(
                self as *const crate::QStencilOperation,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QStencilOperation::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_metaObject(
                self as *const crate::QStencilOperation,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QStencilOperation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QStencilOperation::QStencilOperation(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html#QStencilOperation">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QStencilOperation.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_QStencilOperation(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">QStencilOperation</a> class specifies stencil operation</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QStencilOperation::QStencilOperation()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">QStencilOperation</a> class specifies stencil operation</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperation.html">Qt3DRender::QStencilOperation</a> class specifies the stencil operations for the front- and back-facing polygons. The stencil operation control what is done to fragment when the stencil and depth test pass or fail.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_QStencilOperation1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QStencilOperation::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_qt_metacall(
            self as *const crate::QStencilOperation as *mut crate::QStencilOperation,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QStencilOperation::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_qt_metacast(
            self as *const crate::QStencilOperation as *mut crate::QStencilOperation,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilOperation::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilOperation::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_stencil_operation_arguments {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments::FaceMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FaceMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FaceMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FaceMode(value)
        }
    }

    impl From<FaceMode> for ::std::os::raw::c_int {
        fn from(value: FaceMode) -> Self {
            value.0
        }
    }

    impl FaceMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FaceMode {
        /// C++ enum variant: <span style='color: green;'>```Front = 1028```</span>
        #[allow(non_upper_case_globals)]
        pub const Front: crate::q_stencil_operation_arguments::FaceMode =
            crate::q_stencil_operation_arguments::FaceMode(1028);
        /// C++ enum variant: <span style='color: green;'>```Back = 1029```</span>
        #[allow(non_upper_case_globals)]
        pub const Back: crate::q_stencil_operation_arguments::FaceMode =
            crate::q_stencil_operation_arguments::FaceMode(1029);
        /// C++ enum variant: <span style='color: green;'>```FrontAndBack = 1032```</span>
        #[allow(non_upper_case_globals)]
        pub const FrontAndBack: crate::q_stencil_operation_arguments::FaceMode =
            crate::q_stencil_operation_arguments::FaceMode(1032);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments::Operation```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Operation(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Operation {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Operation(value)
        }
    }

    impl From<Operation> for ::std::os::raw::c_int {
        fn from(value: Operation) -> Self {
            value.0
        }
    }

    impl Operation {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Operation {
        /// C++ enum variant: <span style='color: green;'>```Zero = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Zero: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(0);
        /// C++ enum variant: <span style='color: green;'>```Keep = 7680```</span>
        #[allow(non_upper_case_globals)]
        pub const Keep: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(7680);
        /// C++ enum variant: <span style='color: green;'>```Replace = 7681```</span>
        #[allow(non_upper_case_globals)]
        pub const Replace: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(7681);
        /// C++ enum variant: <span style='color: green;'>```Increment = 7682```</span>
        #[allow(non_upper_case_globals)]
        pub const Increment: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(7682);
        /// C++ enum variant: <span style='color: green;'>```Decrement = 7683```</span>
        #[allow(non_upper_case_globals)]
        pub const Decrement: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(7683);
        /// C++ enum variant: <span style='color: green;'>```IncrementWrap = 34055```</span>
        #[allow(non_upper_case_globals)]
        pub const IncrementWrap: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(34055);
        /// C++ enum variant: <span style='color: green;'>```DecrementWrap = 34056```</span>
        #[allow(non_upper_case_globals)]
        pub const DecrementWrap: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(34056);
        /// C++ enum variant: <span style='color: green;'>```Invert = 5386```</span>
        #[allow(non_upper_case_globals)]
        pub const Invert: crate::q_stencil_operation_arguments::Operation =
            crate::q_stencil_operation_arguments::Operation(5386);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html">QStencilOperationArguments</a> class sets the actions to be taken when stencil and depth tests fail.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html">QStencilOperationArguments</a> class sets the actions to be taken when stencil and depth tests fail.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html">Qt3DRender::QStencilOperationArguments</a> class specifies the arguments for the stencil operations.</p></div>
#[repr(C)]
pub struct QStencilOperationArguments {
    _unused: u8,
}
impl QStencilOperationArguments {
    /// <p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilOperationArguments::setStencilTestFailureOperation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#stencilTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperationChanged</b></span>(Operation <i>stencilFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_stencil_test_failure_operation(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_stencil_operation_arguments::Operation,)> {
        unsafe {
            ::qt_core::Receiver::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setStencilTestFailureOperation(Qt3DRender::QStencilOperationArguments::Operation)\0"))
        }
    }

    /// <p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilOperationArguments::setDepthTestFailureOperation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#depthTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperationChanged</b></span>(Operation <i>depthFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_depth_test_failure_operation(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_stencil_operation_arguments::Operation,)> {
        unsafe {
            ::qt_core::Receiver::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDepthTestFailureOperation(Qt3DRender::QStencilOperationArguments::Operation)\0"))
        }
    }

    /// <p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilOperationArguments::setAllTestsPassOperation` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#allTestsPassOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAllTestsPassOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperationChanged</b></span>(Operation <i>stencilDepthPass</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_all_tests_pass_operation(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_stencil_operation_arguments::Operation,)> {
        unsafe {
            ::qt_core::Receiver::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setAllTestsPassOperation(Qt3DRender::QStencilOperationArguments::Operation)\0"))
        }
    }

    /// <p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilOperationArguments::stencilTestFailureOperationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#stencilTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperationChanged</b></span>(Operation <i>stencilFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn stencil_test_failure_operation_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_stencil_operation_arguments::Operation,)> {
        unsafe {
            ::qt_core::Signal::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2stencilTestFailureOperationChanged(Qt3DRender::QStencilOperationArguments::Operation)\0"))
        }
    }

    /// <p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilOperationArguments::depthTestFailureOperationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#depthTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperationChanged</b></span>(Operation <i>depthFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn depth_test_failure_operation_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_stencil_operation_arguments::Operation,)> {
        unsafe {
            ::qt_core::Signal::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2depthTestFailureOperationChanged(Qt3DRender::QStencilOperationArguments::Operation)\0"))
        }
    }

    /// <p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilOperationArguments::allTestsPassOperationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#allTestsPassOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAllTestsPassOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperationChanged</b></span>(Operation <i>stencilDepthPass</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn all_tests_pass_operation_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_stencil_operation_arguments::Operation,)> {
        unsafe {
            ::qt_core::Signal::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2allTestsPassOperationChanged(Qt3DRender::QStencilOperationArguments::Operation)\0"))
        }
    }

    /// <p>Holds the faces the arguments are applied to.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilOperationArguments::faceModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the faces the arguments are applied to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> FaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn face_mode_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_stencil_operation_arguments::FaceMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2faceModeChanged(Qt3DRender::QStencilOperationArguments::FaceMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments::Operation Qt3DRender::QStencilOperationArguments::allTestsPassOperation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#allTestsPassOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAllTestsPassOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperationChanged</b></span>(Operation <i>stencilDepthPass</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn all_tests_pass_operation(
        &self,
    ) -> crate::q_stencil_operation_arguments::Operation {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_allTestsPassOperation(self as *const crate::QStencilOperationArguments)
    }

    /// <p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments::Operation Qt3DRender::QStencilOperationArguments::depthTestFailureOperation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#depthTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperationChanged</b></span>(Operation <i>depthFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn depth_test_failure_operation(
        &self,
    ) -> crate::q_stencil_operation_arguments::Operation {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_depthTestFailureOperation(self as *const crate::QStencilOperationArguments)
    }

    /// <p>Holds the faces the arguments are applied to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments::FaceMode Qt3DRender::QStencilOperationArguments::faceMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the faces the arguments are applied to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> FaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn face_mode(&self) -> crate::q_stencil_operation_arguments::FaceMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_faceMode(
            self as *const crate::QStencilOperationArguments,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QStencilOperationArguments::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_metaObject(
                self as *const crate::QStencilOperationArguments,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QStencilOperationArguments::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_qt_metacall(
            self as *const crate::QStencilOperationArguments
                as *mut crate::QStencilOperationArguments,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QStencilOperationArguments::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_qt_metacast(
            self as *const crate::QStencilOperationArguments
                as *mut crate::QStencilOperationArguments,
            arg1,
        )
    }

    /// <p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilOperationArguments::setAllTestsPassOperation(Qt3DRender::QStencilOperationArguments::Operation operation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#allTestsPassOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when depth and stencil test pass. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAllTestsPassOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>allTestsPassOperationChanged</b></span>(Operation <i>stencilDepthPass</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_all_tests_pass_operation(
        &self,
        operation: crate::q_stencil_operation_arguments::Operation,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_setAllTestsPassOperation(self as *const crate::QStencilOperationArguments as *mut crate::QStencilOperationArguments, operation)
    }

    /// <p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilOperationArguments::setDepthTestFailureOperation(Qt3DRender::QStencilOperationArguments::Operation operation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#depthTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test passes, but depth test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDepthTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>depthTestFailureOperationChanged</b></span>(Operation <i>depthFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_depth_test_failure_operation(
        &self,
        operation: crate::q_stencil_operation_arguments::Operation,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_setDepthTestFailureOperation(self as *const crate::QStencilOperationArguments as *mut crate::QStencilOperationArguments, operation)
    }

    /// <p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilOperationArguments::setStencilTestFailureOperation(Qt3DRender::QStencilOperationArguments::Operation operation)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#stencilTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperationChanged</b></span>(Operation <i>stencilFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_stencil_test_failure_operation(
        &self,
        operation: crate::q_stencil_operation_arguments::Operation,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_setStencilTestFailureOperation(self as *const crate::QStencilOperationArguments as *mut crate::QStencilOperationArguments, operation)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments::Operation Qt3DRender::QStencilOperationArguments::stencilTestFailureOperation() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciloperationarguments.html#stencilTestFailureOperation-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test operation for when the stencil test fails. Default is <a href="http://doc.qt.io/qt-5/qml-qt3d-render-stenciloperationarguments.html">StencilOperationArguments</a>.Keep.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Operation </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperation</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilTestFailureOperation</b></span>(Operation <i>operation</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilTestFailureOperationChanged</b></span>(Operation <i>stencilFail</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn stencil_test_failure_operation(
        &self,
    ) -> crate::q_stencil_operation_arguments::Operation {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_stencilTestFailureOperation(self as *const crate::QStencilOperationArguments)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilOperationArguments::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilOperationArguments::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">QStencilTest</a> class specifies arguments for the stecil test</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QStencilTest```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">QStencilTest</a> class specifies arguments for the stecil test</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">Qt3DRender::QStencilTest</a> class specifies argument for the stencil test. The stencil test comprises of three arguments: stencil test function, stencil test mask and stencil reference value. <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">QStencilTest</a> allows these arguments to be set for both front- and back-facing polygons separately.</p></div>
#[repr(C)]
pub struct QStencilTest {
    _unused: u8,
}
impl QStencilTest {
    /// <p>Holds the stencil test arguments for back-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTestArguments* Qt3DRender::QStencilTest::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html#back-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test arguments for back-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStencilTestArguments *</td><td class="memItemRight bottomAlign"><span class="name"><b>back</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> ::qt_core::QPtr<crate::QStencilTestArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_back(
                self as *const crate::QStencilTest,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Holds the stencil test arguments for front-facing polygons.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTestArguments* Qt3DRender::QStencilTest::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html#front-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test arguments for front-facing polygons.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStencilTestArguments *</td><td class="memItemRight bottomAlign"><span class="name"><b>front</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> ::qt_core::QPtr<crate::QStencilTestArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_front(
                self as *const crate::QStencilTest,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QStencilTest::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_metaObject(
                self as *const crate::QStencilTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QStencilTest.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QStencilTest::QStencilTest(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html#QStencilTest">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QStencilTest.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QStencilTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_QStencilTest(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">QStencilTest</a> class specifies arguments for the stecil test</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QStencilTest::QStencilTest()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">QStencilTest</a> class specifies arguments for the stecil test</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">Qt3DRender::QStencilTest</a> class specifies argument for the stencil test. The stencil test comprises of three arguments: stencil test function, stencil test mask and stencil reference value. <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltest.html">QStencilTest</a> allows these arguments to be set for both front- and back-facing polygons separately.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QStencilTest> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_QStencilTest1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QStencilTest::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_qt_metacall(
            self as *const crate::QStencilTest as *mut crate::QStencilTest,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QStencilTest::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_qt_metacast(
            self as *const crate::QStencilTest as *mut crate::QStencilTest,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilTest::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilTest::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_stencil_test_arguments {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QStencilTestArguments```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFaceMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct StencilFaceMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for StencilFaceMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            StencilFaceMode(value)
        }
    }

    impl From<StencilFaceMode> for ::std::os::raw::c_int {
        fn from(value: StencilFaceMode) -> Self {
            value.0
        }
    }

    impl StencilFaceMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl StencilFaceMode {
        /// C++ enum variant: <span style='color: green;'>```Front = 1028```</span>
        #[allow(non_upper_case_globals)]
        pub const Front: crate::q_stencil_test_arguments::StencilFaceMode =
            crate::q_stencil_test_arguments::StencilFaceMode(1028);
        /// C++ enum variant: <span style='color: green;'>```Back = 1029```</span>
        #[allow(non_upper_case_globals)]
        pub const Back: crate::q_stencil_test_arguments::StencilFaceMode =
            crate::q_stencil_test_arguments::StencilFaceMode(1029);
        /// C++ enum variant: <span style='color: green;'>```FrontAndBack = 1032```</span>
        #[allow(non_upper_case_globals)]
        pub const FrontAndBack: crate::q_stencil_test_arguments::StencilFaceMode =
            crate::q_stencil_test_arguments::StencilFaceMode(1032);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFunction```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct StencilFunction(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for StencilFunction {
        fn from(value: ::std::os::raw::c_int) -> Self {
            StencilFunction(value)
        }
    }

    impl From<StencilFunction> for ::std::os::raw::c_int {
        fn from(value: StencilFunction) -> Self {
            value.0
        }
    }

    impl StencilFunction {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl StencilFunction {
        /// C++ enum variant: <span style='color: green;'>```Never = 512```</span>
        #[allow(non_upper_case_globals)]
        pub const Never: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(512);
        /// C++ enum variant: <span style='color: green;'>```Always = 519```</span>
        #[allow(non_upper_case_globals)]
        pub const Always: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(519);
        /// C++ enum variant: <span style='color: green;'>```Less = 513```</span>
        #[allow(non_upper_case_globals)]
        pub const Less: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(513);
        /// C++ enum variant: <span style='color: green;'>```LessOrEqual = 515```</span>
        #[allow(non_upper_case_globals)]
        pub const LessOrEqual: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(515);
        /// C++ enum variant: <span style='color: green;'>```Equal = 514```</span>
        #[allow(non_upper_case_globals)]
        pub const Equal: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(514);
        /// C++ enum variant: <span style='color: green;'>```GreaterOrEqual = 518```</span>
        #[allow(non_upper_case_globals)]
        pub const GreaterOrEqual: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(518);
        /// C++ enum variant: <span style='color: green;'>```Greater = 516```</span>
        #[allow(non_upper_case_globals)]
        pub const Greater: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(516);
        /// C++ enum variant: <span style='color: green;'>```NotEqual = 517```</span>
        #[allow(non_upper_case_globals)]
        pub const NotEqual: crate::q_stencil_test_arguments::StencilFunction =
            crate::q_stencil_test_arguments::StencilFunction(517);
    }
}
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html">QStencilTestArguments</a> class specifies arguments for stencil test</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QStencilTestArguments```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html">QStencilTestArguments</a> class specifies arguments for stencil test</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html">Qt3DRender::QStencilTestArguments</a> class specifies the arguments for the stencil test.</p></div>
#[repr(C)]
pub struct QStencilTestArguments {
    _unused: u8,
}
impl QStencilTestArguments {
    /// <p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilTestArguments::setComparisonMask` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#comparisonMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComparisonMask</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMaskChanged</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_comparison_mask(&self) -> ::qt_core::Receiver<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setComparisonMask(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the stencil test reference value. Default is zero.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilTestArguments::setReferenceValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test reference value. Default is zero.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_reference_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setReferenceValue(int)\0"),
            )
        }
    }

    /// <p>Holds the stencil test function. Default is Never.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QStencilTestArguments::setStencilFunction` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#stencilFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test function. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> StencilFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilFunction</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunctionChanged</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#StencilFunction-enum">Qt3DRender::QStencilTestArguments::StencilFunction</a>.</p></div>
    #[inline(always)]
    pub fn slot_set_stencil_function(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_stencil_test_arguments::StencilFunction,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setStencilFunction(Qt3DRender::QStencilTestArguments::StencilFunction)\0",
                ),
            )
        }
    }

    /// <p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilTestArguments::comparisonMaskChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#comparisonMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComparisonMask</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMaskChanged</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn comparison_mask_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2comparisonMaskChanged(unsigned int)\0",
                ),
            )
        }
    }

    /// <p>Holds the stencil test function. Default is Never.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilTestArguments::stencilFunctionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#stencilFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test function. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> StencilFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilFunction</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunctionChanged</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#StencilFunction-enum">Qt3DRender::QStencilTestArguments::StencilFunction</a>.</p></div>
    #[inline(always)]
    pub fn stencil_function_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_stencil_test_arguments::StencilFunction,)> {
        unsafe {
            ::qt_core::Signal::new(::cpp_core::Ref::from_raw(self) .expect("attempted to construct a null Ref"), ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2stencilFunctionChanged(Qt3DRender::QStencilTestArguments::StencilFunction)\0"))
        }
    }

    /// <p>Holds the stencil test reference value. Default is zero.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilTestArguments::referenceValueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test reference value. Default is zero.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn reference_value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2referenceValueChanged(int)\0"),
            )
        }
    }

    /// <p>Holds the faces the arguments are applied to.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QStencilTestArguments::faceModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the faces the arguments are applied to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> StencilFaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(StencilFaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn face_mode_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_stencil_test_arguments::StencilFaceMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2faceModeChanged(Qt3DRender::QStencilTestArguments::StencilFaceMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QStencilTestArguments::comparisonMask() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#comparisonMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComparisonMask</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMaskChanged</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn comparison_mask(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_comparisonMask(
            self as *const crate::QStencilTestArguments,
        )
    }

    /// <p>Holds the faces the arguments are applied to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFaceMode Qt3DRender::QStencilTestArguments::faceMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the faces the arguments are applied to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> StencilFaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(StencilFaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn face_mode(&self) -> crate::q_stencil_test_arguments::StencilFaceMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_faceMode(
            self as *const crate::QStencilTestArguments,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QStencilTestArguments::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_metaObject(
                self as *const crate::QStencilTestArguments,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QStencilTestArguments::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_qt_metacall(
            self as *const crate::QStencilTestArguments as *mut crate::QStencilTestArguments,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QStencilTestArguments::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_qt_metacast(
            self as *const crate::QStencilTestArguments as *mut crate::QStencilTestArguments,
            arg1,
        )
    }

    /// <p>Holds the stencil test reference value. Default is zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QStencilTestArguments::referenceValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test reference value. Default is zero.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn reference_value(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_referenceValue(
            self as *const crate::QStencilTestArguments,
        )
    }

    /// <p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilTestArguments::setComparisonMask(unsigned int comparisonMask)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#comparisonMask-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test comparison mask. Default is all zeroes.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMask</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComparisonMask</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>comparisonMaskChanged</b></span>(uint <i>comparisonMask</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_comparison_mask(&self, comparison_mask: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_setComparisonMask(
            self as *const crate::QStencilTestArguments as *mut crate::QStencilTestArguments,
            comparison_mask,
        )
    }

    /// <p>Holds the stencil test reference value. Default is zero.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilTestArguments::setReferenceValue(int referenceValue)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#referenceValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test reference value. Default is zero.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setReferenceValue</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>referenceValueChanged</b></span>(int <i>referenceValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_reference_value(&self, reference_value: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_setReferenceValue(
            self as *const crate::QStencilTestArguments as *mut crate::QStencilTestArguments,
            reference_value,
        )
    }

    /// <p>Holds the stencil test function. Default is Never.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QStencilTestArguments::setStencilFunction(Qt3DRender::QStencilTestArguments::StencilFunction stencilFunction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#stencilFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test function. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> StencilFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilFunction</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunctionChanged</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#StencilFunction-enum">Qt3DRender::QStencilTestArguments::StencilFunction</a>.</p></div>
    #[inline(always)]
    pub unsafe fn set_stencil_function(
        &self,
        stencil_function: crate::q_stencil_test_arguments::StencilFunction,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_setStencilFunction(
            self as *const crate::QStencilTestArguments as *mut crate::QStencilTestArguments,
            stencil_function,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the stencil test function. Default is Never.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFunction Qt3DRender::QStencilTestArguments::stencilFunction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#stencilFunction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the stencil test function. Default is Never.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> StencilFunction </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setStencilFunction</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>stencilFunctionChanged</b></span>(StencilFunction <i>stencilFunction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qstenciltestarguments.html#StencilFunction-enum">Qt3DRender::QStencilTestArguments::StencilFunction</a>.</p></div>
    #[inline(always)]
    pub unsafe fn stencil_function(&self) -> crate::q_stencil_test_arguments::StencilFunction {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_stencilFunction(
            self as *const crate::QStencilTestArguments,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilTestArguments::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QStencilTestArguments::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Encapsulates a Technique.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTechnique```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates a Technique.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a> specifies a set of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> objects, <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects, <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects and a <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">Qt3DRender::QGraphicsApiFilter</a>, which together define a rendering technique the given graphics API can render. The filter keys are used by <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">Qt3DRender::QTechniqueFilter</a> to select specific techniques at specific parts of the FrameGraph. If two <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> instances with the same name are specified in a <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>, the one in Technique overrides the one used in the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>.</p>
/// <p>When creating an <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> that targets several versions of a graphics API, it is useful to create several <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> nodes each with a <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#graphicsApiFilter-prop">graphicsApiFilter</a> set to match one of the targeted GL versions. At runtime, the Qt3D renderer will select the most appropriate <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> based on which graphics API versions are supported and (if specified) the <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes that satisfy a given <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> in the FrameGraph.</p>
/// <p><b>Note: </b>When using OpenGL as the graphics API for rendering, Qt3D relies on the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> returned by <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#defaultFormat">QSurfaceFormat::defaultFormat</a>() at runtime to decide what is the most appropriate GL version available. If you need to customize the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>, do not forget to apply it with <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">QSurfaceFormat::setDefaultFormat</a>(). Setting the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> on the view will likely have no effect on Qt3D related rendering.</p><pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#QTechnique">QTechnique</a></span> <span class="operator">*</span>gl3Technique <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#QTechnique">QTechnique</a></span>();
///
///   <span class="comment">// Create the render passes</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>firstPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>secondPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
///
///   <span class="comment">// Add the passes to the technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(firstPass);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(secondPass);
///
///   <span class="comment">// Set the targeted GL version for the technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setApi(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>OpenGL);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMajorVersion(<span class="number">3</span>);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMinorVersion(<span class="number">1</span>);
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setProfile(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>CoreProfile);
///
///   <span class="comment">// Create a FilterKey</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span> <span class="operator">*</span>filterKey <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span>();
///   filterKey<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"name"</span>));
///   fitlerKey<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"zFillPass"</span>));
///
///   <span class="comment">// Add the FilterKey to the Technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addFilterKey(filterKey);
///
///   <span class="comment">// Create a QParameter</span>
///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span> <span class="operator">*</span>colorParameter <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"color"</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
///
///   <span class="comment">// Add parameter to technique</span>
///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addParameter(colorParameter);
///
/// </pre></div>
#[repr(C)]
pub struct QTechnique {
    _unused: u8,
}
impl QTechnique {
    /// <p>Add <i>filterKey</i> to the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a> local filter keys.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechnique::addFilterKey(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#addFilterKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add <i>filterKey</i> to the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a> local filter keys.</p></div>
    #[inline(always)]
    pub unsafe fn add_filter_key(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_addFilterKey(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Add <i>parameter</i> to the technique's parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechnique::addParameter(Qt3DRender::QParameter* p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#addParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add <i>parameter</i> to the technique's parameters.</p></div>
    #[inline(always)]
    pub unsafe fn add_parameter(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_addParameter(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(p).as_raw_ptr()
                as *mut crate::QParameter,
        )
    }

    /// <p>Appends a <i>pass</i> to the technique.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechnique::addRenderPass(Qt3DRender::QRenderPass* pass)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#addRenderPass">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends a <i>pass</i> to the technique.</p></div>
    #[inline(always)]
    pub unsafe fn add_render_pass(
        &self,
        pass: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderPass>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_addRenderPass(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderPass>>::cast_into(pass)
                .as_raw_ptr() as *mut crate::QRenderPass,
        )
    }

    /// <p>Returns the list of Qt3DCore::QFilterKey key objects making up the filter keys of the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*> Qt3DRender::QTechnique::filterKeys() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#filterKeys">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of Qt3DCore::QFilterKey key objects making up the filter keys of the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a>.</p></div>
    #[inline(always)]
    pub unsafe fn filter_keys(&self) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_filterKeys(
                self as *const crate::QTechnique,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the graphics API filter being used</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter* Qt3DRender::QTechnique::graphicsApiFilter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#graphicsApiFilter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the graphics API filter being used</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QGraphicsApiFilter *</td><td class="memItemRight bottomAlign"><span class="name"><b>graphicsApiFilter</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn graphics_api_filter_mut(&self) -> ::qt_core::QPtr<crate::QGraphicsApiFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_graphicsApiFilter(
                self as *const crate::QTechnique as *mut crate::QTechnique,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Specifies the graphics API filter being used</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QGraphicsApiFilter* Qt3DRender::QTechnique::graphicsApiFilter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#graphicsApiFilter-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the graphics API filter being used</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QGraphicsApiFilter *</td><td class="memItemRight bottomAlign"><span class="name"><b>graphicsApiFilter</b></span>()</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> const Qt3DRender::QGraphicsApiFilter *</td><td class="memItemRight bottomAlign"><span class="name"><b>graphicsApiFilter</b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn graphics_api_filter(&self) -> ::qt_core::QPtr<crate::QGraphicsApiFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_graphicsApiFilter2(
                self as *const crate::QTechnique,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result as *mut crate::QGraphicsApiFilter)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTechnique::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_metaObject(
                self as *const crate::QTechnique,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTechnique.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTechnique::QTechnique(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#QTechnique">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTechnique.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_QTechnique(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulates a Technique.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTechnique::QTechnique()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates a Technique.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a> specifies a set of <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">Qt3DRender::QRenderPass</a> objects, <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects, <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects and a <a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">Qt3DRender::QGraphicsApiFilter</a>, which together define a rendering technique the given graphics API can render. The filter keys are used by <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">Qt3DRender::QTechniqueFilter</a> to select specific techniques at specific parts of the FrameGraph. If two <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a> instances with the same name are specified in a <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and a <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>, the one in Technique overrides the one used in the <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>.</p>
    /// <p>When creating an <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html">QEffect</a> that targets several versions of a graphics API, it is useful to create several <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> nodes each with a <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#graphicsApiFilter-prop">graphicsApiFilter</a> set to match one of the targeted GL versions. At runtime, the Qt3D renderer will select the most appropriate <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> based on which graphics API versions are supported and (if specified) the <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a> nodes that satisfy a given <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> in the FrameGraph.</p>
    /// <p><b>Note: </b>When using OpenGL as the graphics API for rendering, Qt3D relies on the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> returned by <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#defaultFormat">QSurfaceFormat::defaultFormat</a>() at runtime to decide what is the most appropriate GL version available. If you need to customize the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a>, do not forget to apply it with <a href="http://doc.qt.io/qt-5/qsurfaceformat.html#setDefaultFormat">QSurfaceFormat::setDefaultFormat</a>(). Setting the <a href="http://doc.qt.io/qt-5/qsurfaceformat.html">QSurfaceFormat</a> on the view will likely have no effect on Qt3D related rendering.</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#QTechnique">QTechnique</a></span> <span class="operator">*</span>gl3Technique <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#QTechnique">QTechnique</a></span>();
    ///
    ///   <span class="comment">// Create the render passes</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>firstPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span> <span class="operator">*</span>secondPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a></span>();
    ///
    ///   <span class="comment">// Add the passes to the technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(firstPass);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addRenderPass(secondPass);
    ///
    ///   <span class="comment">// Set the targeted GL version for the technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setApi(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>OpenGL);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMajorVersion(<span class="number">3</span>);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setMinorVersion(<span class="number">1</span>);
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>graphicsApiFilter()<span class="operator">-</span><span class="operator">&gt;</span>setProfile(<span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qgraphicsapifilter.html">QGraphicsApiFilter</a></span><span class="operator">::</span>CoreProfile);
    ///
    ///   <span class="comment">// Create a FilterKey</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span> <span class="operator">*</span>filterKey <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">QFilterKey</a></span>();
    ///   filterKey<span class="operator">-</span><span class="operator">&gt;</span>setName(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"name"</span>));
    ///   fitlerKey<span class="operator">-</span><span class="operator">&gt;</span>setValue(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"zFillPass"</span>));
    ///
    ///   <span class="comment">// Add the FilterKey to the Technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addFilterKey(filterKey);
    ///
    ///   <span class="comment">// Create a QParameter</span>
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span> <span class="operator">*</span>colorParameter <span class="operator">=</span> <span class="keyword">new</span> <span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a></span>(<span class="type"><a href="http://doc.qt.io/qt-5/qstring.html#QStringLiteral">QStringLiteral</a></span>(<span class="string">"color"</span>)<span class="operator">,</span> <span class="type"><a href="http://doc.qt.io/qt-5/qcolor.html">QColor</a></span><span class="operator">::</span>fromRgbF(<span class="number">0.0f</span><span class="operator">,</span> <span class="number">0.0f</span><span class="operator">,</span> <span class="number">1.0f</span><span class="operator">,</span> <span class="number">1.0f</span>));
    ///
    ///   <span class="comment">// Add parameter to technique</span>
    ///   gl3Technique<span class="operator">-</span><span class="operator">&gt;</span>addParameter(colorParameter);
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTechnique> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_QTechnique1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns a vector of the techniques current parameters</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> Qt3DRender::QTechnique::parameters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#parameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector of the techniques current parameters</p></div>
    #[inline(always)]
    pub unsafe fn parameters(&self) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_parameters(
                self as *const crate::QTechnique,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTechnique::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_qt_metacall(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTechnique::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_qt_metacast(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            arg1,
        )
    }

    /// <p>Removes <i>filterKey</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a> local filter keys.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechnique::removeFilterKey(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#removeFilterKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes <i>filterKey</i> from the <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">Qt3DRender::QTechnique</a> local filter keys.</p></div>
    #[inline(always)]
    pub unsafe fn remove_filter_key(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_removeFilterKey(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Remove <i>parameter</i> from the technique's parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechnique::removeParameter(Qt3DRender::QParameter* p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#removeParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove <i>parameter</i> from the technique's parameters.</p></div>
    #[inline(always)]
    pub unsafe fn remove_parameter(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_removeParameter(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(p).as_raw_ptr()
                as *mut crate::QParameter,
        )
    }

    /// <p>Removes a <i>pass</i> from the technique.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechnique::removeRenderPass(Qt3DRender::QRenderPass* pass)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#removeRenderPass">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes a <i>pass</i> from the technique.</p></div>
    #[inline(always)]
    pub unsafe fn remove_render_pass(
        &self,
        pass: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderPass>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_removeRenderPass(
            self as *const crate::QTechnique as *mut crate::QTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderPass>>::cast_into(pass)
                .as_raw_ptr() as *mut crate::QRenderPass,
        )
    }

    /// <p>Returns the list of render passes contained in the technique.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*> Qt3DRender::QTechnique::renderPasses() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html#renderPasses">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the list of render passes contained in the technique.</p></div>
    #[inline(always)]
    pub unsafe fn render_passes(&self) -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_renderPasses(
                self as *const crate::QTechnique,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTechnique::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTechnique::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">QFrameGraphNode</a> used to select QTechniques to use</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTechniqueFilter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">QFrameGraphNode</a> used to select QTechniques to use</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">Qt3DRender::QTechniqueFilter</a> specifies which techniques are used by the FrameGraph when rendering the entities. <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> specifies a list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects and <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects. When <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> is present in the FrameGraph, only the techiques matching the keys in the list are used for rendering. The parameters in the list can be used to set values for shader parameters. The parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> are overridden by parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>.</p></div>
#[repr(C)]
pub struct QTechniqueFilter {
    _unused: u8,
}
impl QTechniqueFilter {
    /// <p>Add the <i>filterKey</i> to the match vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechniqueFilter::addMatch(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html#addMatch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add the <i>filterKey</i> to the match vector.</p></div>
    #[inline(always)]
    pub unsafe fn add_match(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_addMatch(
            self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Add <i>parameter</i> to the vector of parameters that will be passed to the graphics pipeline.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechniqueFilter::addParameter(Qt3DRender::QParameter* p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html#addParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add <i>parameter</i> to the vector of parameters that will be passed to the graphics pipeline.</p></div>
    #[inline(always)]
    pub unsafe fn add_parameter(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_addParameter(
            self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(p).as_raw_ptr()
                as *mut crate::QParameter,
        )
    }

    /// <p>Returns a vector of the current keys for the filter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*> Qt3DRender::QTechniqueFilter::matchAll() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html#matchAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector of the current keys for the filter.</p></div>
    #[inline(always)]
    pub unsafe fn match_all(&self) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_matchAll(
                self as *const crate::QTechniqueFilter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTechniqueFilter::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_metaObject(
                self as *const crate::QTechniqueFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTechniqueFilter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTechniqueFilter::QTechniqueFilter(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html#QTechniqueFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTechniqueFilter.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTechniqueFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_QTechniqueFilter(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">QFrameGraphNode</a> used to select QTechniques to use</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTechniqueFilter::QTechniqueFilter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qframegraphnode.html">QFrameGraphNode</a> used to select QTechniques to use</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">Qt3DRender::QTechniqueFilter</a> specifies which techniques are used by the FrameGraph when rendering the entities. <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> specifies a list of <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html">Qt3DRender::QFilterKey</a> objects and <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">Qt3DRender::QParameter</a> objects. When <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> is present in the FrameGraph, only the techiques matching the keys in the list are used for rendering. The parameters in the list can be used to set values for shader parameters. The parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html">QTechniqueFilter</a> are overridden by parameters in <a href="http://doc.qt.io/qt-5/qt3drender-qtechnique.html">QTechnique</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qrenderpass.html">QRenderPass</a>.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTechniqueFilter> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_QTechniqueFilter1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Returns the current vector of parameters.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> Qt3DRender::QTechniqueFilter::parameters() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html#parameters">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current vector of parameters.</p></div>
    #[inline(always)]
    pub unsafe fn parameters(&self) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_parameters(
                self as *const crate::QTechniqueFilter,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTechniqueFilter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_qt_metacall(
            self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTechniqueFilter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_qt_metacast(
            self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
            arg1,
        )
    }

    /// <p>Remove the <i>filterKey</i> from the match vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechniqueFilter::removeMatch(Qt3DRender::QFilterKey* filterKey)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html#removeMatch">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove the <i>filterKey</i> from the match vector.</p></div>
    #[inline(always)]
    pub unsafe fn remove_match(
        &self,
        filter_key: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_removeMatch(
            self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFilterKey>>::cast_into(filter_key)
                .as_raw_ptr() as *mut crate::QFilterKey,
        )
    }

    /// <p>Remove <i>parameter</i> from the vector of parameters passed to the graphics pipeline.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTechniqueFilter::removeParameter(Qt3DRender::QParameter* p)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtechniquefilter.html#removeParameter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove <i>parameter</i> from the vector of parameters passed to the graphics pipeline.</p></div>
    #[inline(always)]
    pub unsafe fn remove_parameter(
        &self,
        p: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_removeParameter(
            self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QParameter>>::cast_into(p).as_raw_ptr()
                as *mut crate::QParameter,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTechniqueFilter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTechniqueFilter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_texture_wrap_mode {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QTextureWrapMode```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct WrapMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for WrapMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            WrapMode(value)
        }
    }

    impl From<WrapMode> for ::std::os::raw::c_int {
        fn from(value: WrapMode) -> Self {
            value.0
        }
    }

    impl WrapMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl WrapMode {
        /// C++ enum variant: <span style='color: green;'>```Repeat = 10497```</span>
        #[allow(non_upper_case_globals)]
        pub const Repeat: crate::q_texture_wrap_mode::WrapMode =
            crate::q_texture_wrap_mode::WrapMode(10497);
        /// C++ enum variant: <span style='color: green;'>```MirroredRepeat = 33648```</span>
        #[allow(non_upper_case_globals)]
        pub const MirroredRepeat: crate::q_texture_wrap_mode::WrapMode =
            crate::q_texture_wrap_mode::WrapMode(33648);
        /// C++ enum variant: <span style='color: green;'>```ClampToEdge = 33071```</span>
        #[allow(non_upper_case_globals)]
        pub const ClampToEdge: crate::q_texture_wrap_mode::WrapMode =
            crate::q_texture_wrap_mode::WrapMode(33071);
        /// C++ enum variant: <span style='color: green;'>```ClampToBorder = 33069```</span>
        #[allow(non_upper_case_globals)]
        pub const ClampToBorder: crate::q_texture_wrap_mode::WrapMode =
            crate::q_texture_wrap_mode::WrapMode(33069);
    }
}
/// <p>Defines the wrap mode a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">Qt3DRender::QAbstractTexture</a> should apply to a texture.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureWrapMode```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines the wrap mode a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">Qt3DRender::QAbstractTexture</a> should apply to a texture.</p></div>
#[repr(C)]
pub struct QTextureWrapMode {
    _unused: u8,
}
impl QTextureWrapMode {
    /// <p>Sets the wrap mode of the x dimension to <i>x</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QTextureWrapMode::setX` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode of the x dimension to <i>x</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#x-prop">x</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#x-prop">x</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_x(&self) -> ::qt_core::Receiver<(crate::q_texture_wrap_mode::WrapMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setX(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }

    /// <p>Sets the wrap mode of the y dimension to <i>y</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QTextureWrapMode::setY` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode of the y dimension to <i>y</i>.</p>
    /// <p><b>Note: </b>this is not available on 1D textures.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#y-prop">y</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#y-prop">y</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_y(&self) -> ::qt_core::Receiver<(crate::q_texture_wrap_mode::WrapMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setY(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }

    /// <p>Sets the wrap mode of the z dimension to <i>z</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QTextureWrapMode::setZ` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode of the z dimension to <i>z</i>.</p>
    /// <p><b>Note: </b>this is only available on 3D textures.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#z-prop">z</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#z-prop">z</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_z(&self) -> ::qt_core::Receiver<(crate::q_texture_wrap_mode::WrapMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setZ(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }

    /// <p>Returns the wrap mode of the x dimension.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureWrapMode::xChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#x-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wrap mode of the x dimension.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WrapMode </td><td class="memItemRight bottomAlign"><span class="name"><b>x</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setX">setX</a></b></span>(WrapMode <i>x</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>xChanged</b></span>(WrapMode <i>x</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn x_changed(&self) -> ::qt_core::Signal<(crate::q_texture_wrap_mode::WrapMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2xChanged(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }

    /// <p>Returns the wrap mode of the y dimension.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureWrapMode::yChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#y-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wrap mode of the y dimension.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WrapMode </td><td class="memItemRight bottomAlign"><span class="name"><b>y</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setY">setY</a></b></span>(WrapMode <i>y</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>yChanged</b></span>(WrapMode <i>y</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn y_changed(&self) -> ::qt_core::Signal<(crate::q_texture_wrap_mode::WrapMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2yChanged(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }

    /// <p>Returns the wrap mode of the z dimension.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureWrapMode::zChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#z-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wrap mode of the z dimension.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WrapMode </td><td class="memItemRight bottomAlign"><span class="name"><b>z</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setZ">setZ</a></b></span>(WrapMode <i>z</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>zChanged</b></span>(WrapMode <i>z</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn z_changed(&self) -> ::qt_core::Signal<(crate::q_texture_wrap_mode::WrapMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2zChanged(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTextureWrapMode::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_metaObject(
                self as *const crate::QTextureWrapMode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTextureWrapMode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureWrapMode::QTextureWrapMode(Qt3DRender::QTextureWrapMode::WrapMode wrapMode = …, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#QTextureWrapMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureWrapMode.</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        wrap_mode: crate::q_texture_wrap_mode::WrapMode,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
    ) -> ::qt_core::QBox<crate::QTextureWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_QTextureWrapMode(
                wrap_mode,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Contrusts a new <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html">Qt3DRender::QTextureWrapMode</a> instance with the wrap mode to apply to each dimension <i>x</i>, <i>y</i> <i>z</i> of the texture and <i>parent</i> as parent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureWrapMode::QTextureWrapMode(Qt3DRender::QTextureWrapMode::WrapMode x, Qt3DRender::QTextureWrapMode::WrapMode y, Qt3DRender::QTextureWrapMode::WrapMode z, QObject* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#QTextureWrapMode-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Contrusts a new <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html">Qt3DRender::QTextureWrapMode</a> instance with the wrap mode to apply to each dimension <i>x</i>, <i>y</i> <i>z</i> of the texture and <i>parent</i> as parent.</p></div>
    #[inline(always)]
    pub unsafe fn new_4a(
        x: crate::q_texture_wrap_mode::WrapMode,
        y: crate::q_texture_wrap_mode::WrapMode,
        z: crate::q_texture_wrap_mode::WrapMode,
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
    ) -> ::qt_core::QBox<crate::QTextureWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_QTextureWrapMode1(
                x,
                y,
                z,
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Defines the wrap mode a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">Qt3DRender::QAbstractTexture</a> should apply to a texture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureWrapMode::QTextureWrapMode()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Defines the wrap mode a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">Qt3DRender::QAbstractTexture</a> should apply to a texture.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTextureWrapMode> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_QTextureWrapMode2() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Default constructs an instance of QTextureWrapMode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureWrapMode::QTextureWrapMode(Qt3DRender::QTextureWrapMode::WrapMode wrapMode = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#QTextureWrapMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureWrapMode.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        wrap_mode: crate::q_texture_wrap_mode::WrapMode,
    ) -> ::qt_core::QBox<crate::QTextureWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_QTextureWrapMode4(
                wrap_mode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Contrusts a new <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html">Qt3DRender::QTextureWrapMode</a> instance with the wrap mode to apply to each dimension <i>x</i>, <i>y</i> <i>z</i> of the texture and <i>parent</i> as parent.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureWrapMode::QTextureWrapMode(Qt3DRender::QTextureWrapMode::WrapMode x, Qt3DRender::QTextureWrapMode::WrapMode y, Qt3DRender::QTextureWrapMode::WrapMode z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#QTextureWrapMode-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Contrusts a new <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html">Qt3DRender::QTextureWrapMode</a> instance with the wrap mode to apply to each dimension <i>x</i>, <i>y</i> <i>z</i> of the texture and <i>parent</i> as parent.</p></div>
    #[inline(always)]
    pub unsafe fn new_3a(
        x: crate::q_texture_wrap_mode::WrapMode,
        y: crate::q_texture_wrap_mode::WrapMode,
        z: crate::q_texture_wrap_mode::WrapMode,
    ) -> ::qt_core::QBox<crate::QTextureWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_QTextureWrapMode5(
                x, y, z,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTextureWrapMode::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_qt_metacall(
            self as *const crate::QTextureWrapMode as *mut crate::QTextureWrapMode,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTextureWrapMode::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_qt_metacast(
            self as *const crate::QTextureWrapMode as *mut crate::QTextureWrapMode,
            arg1,
        )
    }

    /// <p>Sets the wrap mode of the x dimension to <i>x</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QTextureWrapMode::setX(Qt3DRender::QTextureWrapMode::WrapMode x)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode of the x dimension to <i>x</i>.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#x-prop">x</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#x-prop">x</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_x(&self, x: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_setX(
            self as *const crate::QTextureWrapMode as *mut crate::QTextureWrapMode,
            x,
        )
    }

    /// <p>Sets the wrap mode of the y dimension to <i>y</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QTextureWrapMode::setY(Qt3DRender::QTextureWrapMode::WrapMode y)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode of the y dimension to <i>y</i>.</p>
    /// <p><b>Note: </b>this is not available on 1D textures.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#y-prop">y</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#y-prop">y</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_y(&self, y: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_setY(
            self as *const crate::QTextureWrapMode as *mut crate::QTextureWrapMode,
            y,
        )
    }

    /// <p>Sets the wrap mode of the z dimension to <i>z</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QTextureWrapMode::setZ(Qt3DRender::QTextureWrapMode::WrapMode z)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode of the z dimension to <i>z</i>.</p>
    /// <p><b>Note: </b>this is only available on 3D textures.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#z-prop">z</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#z-prop">z</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_z(&self, z: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_setZ(
            self as *const crate::QTextureWrapMode as *mut crate::QTextureWrapMode,
            z,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureWrapMode::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureWrapMode::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the wrap mode of the x dimension.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode Qt3DRender::QTextureWrapMode::x() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#x-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wrap mode of the x dimension.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WrapMode </td><td class="memItemRight bottomAlign"><span class="name"><b>x</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setX">setX</a></b></span>(WrapMode <i>x</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>xChanged</b></span>(WrapMode <i>x</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn x(&self) -> crate::q_texture_wrap_mode::WrapMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_x(
            self as *const crate::QTextureWrapMode,
        )
    }

    /// <p>Returns the wrap mode of the y dimension.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode Qt3DRender::QTextureWrapMode::y() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#y-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wrap mode of the y dimension.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WrapMode </td><td class="memItemRight bottomAlign"><span class="name"><b>y</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setY">setY</a></b></span>(WrapMode <i>y</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>yChanged</b></span>(WrapMode <i>y</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn y(&self) -> crate::q_texture_wrap_mode::WrapMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_y(
            self as *const crate::QTextureWrapMode,
        )
    }

    /// <p>Returns the wrap mode of the z dimension.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode Qt3DRender::QTextureWrapMode::z() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#z-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the wrap mode of the z dimension.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> WrapMode </td><td class="memItemRight bottomAlign"><span class="name"><b>z</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturewrapmode.html#setZ">setZ</a></b></span>(WrapMode <i>z</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>zChanged</b></span>(WrapMode <i>z</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn z(&self) -> crate::q_texture_wrap_mode::WrapMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_z(
            self as *const crate::QTextureWrapMode,
        )
    }
}

pub mod q_texture_image {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QTextureImage```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QTextureImage::Status```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Status(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Status {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Status(value)
        }
    }

    impl From<Status> for ::std::os::raw::c_int {
        fn from(value: Status) -> Self {
            value.0
        }
    }

    impl Status {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Status {
        /// C++ enum variant: <span style='color: green;'>```None = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const None: crate::q_texture_image::Status = crate::q_texture_image::Status(0);
        /// C++ enum variant: <span style='color: green;'>```Loading = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Loading: crate::q_texture_image::Status = crate::q_texture_image::Status(1);
        /// C++ enum variant: <span style='color: green;'>```Ready = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const Ready: crate::q_texture_image::Status = crate::q_texture_image::Status(2);
        /// C++ enum variant: <span style='color: green;'>```Error = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const Error: crate::q_texture_image::Status = crate::q_texture_image::Status(3);
    }
}
/// <p>Encapsulates the necessary information to create an OpenGL texture image from an image source.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureImage```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates the necessary information to create an OpenGL texture image from an image source.</p>
/// <p>It contains the necessary information mipmap level, layer, cube face and source URL to load at the proper place data into an OpenGL texture.</p></div>
#[repr(C)]
pub struct QTextureImage {
    _unused: u8,
}
impl QTextureImage {
    /// <p>Sets the source url of the texture image to <i>source</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QTextureImage::setSource` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#setSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the source url of the texture image to <i>source</i>.</p>
    /// <p><b>Note: </b>This internally triggers a call to update the data generator.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source-prop">source</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source">source</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_source(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSource(QUrl const &)\0"),
            )
        }
    }

    /// <p>Sets mirroring to <i>mirrored</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QTextureImage::setMirrored` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#setMirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets mirroring to <i>mirrored</i>.</p>
    /// <p><b>Note: </b>This internally triggers a call to update the data generator.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#mirrored-prop">mirrored</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#isMirrored">isMirrored</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_mirrored(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMirrored(bool)\0"),
            )
        }
    }

    /// <p>This property holds the source url from which data for the texture image will be loaded.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureImage::sourceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the source url from which data for the texture image will be loaded.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source">source</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#setSource">setSource</a></b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn source_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2sourceChanged(QUrl const &)\0"),
            )
        }
    }

    /// <p>This property holds the status of the texture image loading.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureImage::statusChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the status of the texture image loading.</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.None</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.Loading</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.Ready</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.Error</li>
    /// </ul>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#status">status</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn status_changed(&self) -> ::qt_core::Signal<(crate::q_texture_image::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2statusChanged(Qt3DRender::QTextureImage::Status)\0",
                ),
            )
        }
    }

    /// <p>This property specifies whether the image should be mirrored when loaded. This is a convenience to avoid having to manipulate images to match the origin of the texture coordinates used by the rendering API. By default this property is set to true. This has no effect when using compressed texture formats.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureImage::mirroredChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#mirrored-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property specifies whether the image should be mirrored when loaded. This is a convenience to avoid having to manipulate images to match the origin of the texture coordinates used by the rendering API. By default this property is set to true. This has no effect when using compressed texture formats.</p>
    /// <p><b>Note: </b>OpenGL specifies the origin of texture coordinates from the lower left hand corner whereas DirectX uses the the upper left hand corner.</p><p><b>Note: </b>When using cube map texture you'll probably want mirroring disabled as the cube map sampler takes a direction rather than regular texture coordinates.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#isMirrored">isMirrored</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#setMirrored">setMirrored</a></b></span>(bool <i>mirrored</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mirroredChanged</b></span>(bool <i>mirrored</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mirrored_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2mirroredChanged(bool)\0"),
            )
        }
    }

    /// <p>Returns whether mirroring is enabled or not.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QTextureImage::isMirrored() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#isMirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether mirroring is enabled or not.</p>
    /// <p><b>Note:</b> Getter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#mirrored-prop">mirrored</a>. </p></div>
    #[inline(always)]
    pub unsafe fn is_mirrored(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_isMirrored(
            self as *const crate::QTextureImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTextureImage::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_metaObject(
                self as *const crate::QTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTextureImage.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureImage::QTextureImage(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#QTextureImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureImage.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_QTextureImage(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Encapsulates the necessary information to create an OpenGL texture image from an image source.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureImage::QTextureImage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Encapsulates the necessary information to create an OpenGL texture image from an image source.</p>
    /// <p>It contains the necessary information mipmap level, layer, cube face and source URL to load at the proper place data into an OpenGL texture.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTextureImage> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_QTextureImage1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTextureImage::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_qt_metacall(
            self as *const crate::QTextureImage as *mut crate::QTextureImage,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTextureImage::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_qt_metacast(
            self as *const crate::QTextureImage as *mut crate::QTextureImage,
            arg1,
        )
    }

    /// <p>Sets mirroring to <i>mirrored</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QTextureImage::setMirrored(bool mirrored)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#setMirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets mirroring to <i>mirrored</i>.</p>
    /// <p><b>Note: </b>This internally triggers a call to update the data generator.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#mirrored-prop">mirrored</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#isMirrored">isMirrored</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mirrored(&self, mirrored: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_setMirrored(
            self as *const crate::QTextureImage as *mut crate::QTextureImage,
            mirrored,
        )
    }

    /// <p>Sets the source url of the texture image to <i>source</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QTextureImage::setSource(const QUrl& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#setSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the source url of the texture image to <i>source</i>.</p>
    /// <p><b>Note: </b>This internally triggers a call to update the data generator.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source-prop">source</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source">source</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_source(
        &self,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_setSource(
            self as *const crate::QTextureImage as *mut crate::QTextureImage,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>This property holds the source url from which data for the texture image will be loaded.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QTextureImage::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the source url from which data for the texture image will be loaded.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#source">source</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#setSource">setSource</a></b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_source(
                self as *const crate::QTextureImage,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>This property holds the status of the texture image loading.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImage::Status Qt3DRender::QTextureImage::status() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#status-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the status of the texture image loading.</p>
    /// <ul>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.None</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.Loading</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.Ready</li>
    /// <li><a href="http://doc.qt.io/qt-5/qml-qt3d-render-textureimage.html">TextureImage</a>.Error</li>
    /// </ul>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Status </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureimage.html#status">status</a></b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>statusChanged</b></span>(Status <i>status</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn status(&self) -> crate::q_texture_image::Status {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_status(
            self as *const crate::QTextureImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureImage::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureImage::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1D</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTexture1D```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1D</a> target format.</p></div>
#[repr(C)]
pub struct QTexture1D {
    _unused: u8,
}
impl QTexture1D {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTexture1D::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_metaObject(
                self as *const crate::QTexture1D,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTexture1D.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture1D::QTexture1D(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html#QTexture1D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTexture1D.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTexture1D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_QTexture1D(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1D</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture1D::QTexture1D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1D</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTexture1D> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_QTexture1D1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTexture1D::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_qt_metacall(
            self as *const crate::QTexture1D as *mut crate::QTexture1D,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTexture1D::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_qt_metacast(
            self as *const crate::QTexture1D as *mut crate::QTexture1D,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture1D::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture1D::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1DArray</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTexture1DArray```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1DArray</a> target format.</p></div>
#[repr(C)]
pub struct QTexture1DArray {
    _unused: u8,
}
impl QTexture1DArray {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTexture1DArray::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_metaObject(
                self as *const crate::QTexture1DArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTexture1DArray.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture1DArray::QTexture1DArray(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html#QTexture1DArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTexture1DArray.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTexture1DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_QTexture1DArray(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1DArray</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture1DArray::QTexture1DArray()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target1DArray</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTexture1DArray> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_QTexture1DArray1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTexture1DArray::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_qt_metacall(
            self as *const crate::QTexture1DArray as *mut crate::QTexture1DArray,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTexture1DArray::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_qt_metacast(
            self as *const crate::QTexture1DArray as *mut crate::QTexture1DArray,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture1DArray::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture1DArray::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2D</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTexture2D```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2D</a> target format.</p></div>
#[repr(C)]
pub struct QTexture2D {
    _unused: u8,
}
impl QTexture2D {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTexture2D::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_metaObject(
                self as *const crate::QTexture2D,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTexture2D.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2D::QTexture2D(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html#QTexture2D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTexture2D.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTexture2D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_QTexture2D(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2D</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2D::QTexture2D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2D</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTexture2D> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_QTexture2D1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTexture2D::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_qt_metacall(
            self as *const crate::QTexture2D as *mut crate::QTexture2D,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTexture2D::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_qt_metacast(
            self as *const crate::QTexture2D as *mut crate::QTexture2D,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2D::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2D::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DArray</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTexture2DArray```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DArray</a> target format.</p></div>
#[repr(C)]
pub struct QTexture2DArray {
    _unused: u8,
}
impl QTexture2DArray {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTexture2DArray::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_metaObject(
                self as *const crate::QTexture2DArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTexture2DArray.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2DArray::QTexture2DArray(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html#QTexture2DArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTexture2DArray.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTexture2DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_QTexture2DArray(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DArray</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2DArray::QTexture2DArray()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DArray</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTexture2DArray> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_QTexture2DArray1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTexture2DArray::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_qt_metacall(
            self as *const crate::QTexture2DArray as *mut crate::QTexture2DArray,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTexture2DArray::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_qt_metacast(
            self as *const crate::QTexture2DArray as *mut crate::QTexture2DArray,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2DArray::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2DArray::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target3D</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTexture3D```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target3D</a> target format.</p></div>
#[repr(C)]
pub struct QTexture3D {
    _unused: u8,
}
impl QTexture3D {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTexture3D::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_metaObject(
                self as *const crate::QTexture3D,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTexture3D.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture3D::QTexture3D(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html#QTexture3D">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTexture3D.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTexture3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_QTexture3D(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target3D</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture3D::QTexture3D()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target3D</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTexture3D> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_QTexture3D1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTexture3D::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_qt_metacall(
            self as *const crate::QTexture3D as *mut crate::QTexture3D,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTexture3D::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_qt_metacast(
            self as *const crate::QTexture3D as *mut crate::QTexture3D,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture3D::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture3D::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMap</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureCubeMap```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMap</a> target format.</p></div>
#[repr(C)]
pub struct QTextureCubeMap {
    _unused: u8,
}
impl QTextureCubeMap {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTextureCubeMap::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_metaObject(
                self as *const crate::QTextureCubeMap,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTextureCubeMap.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureCubeMap::QTextureCubeMap(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html#QTextureCubeMap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureCubeMap.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTextureCubeMap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_QTextureCubeMap(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMap</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureCubeMap::QTextureCubeMap()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMap</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTextureCubeMap> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_QTextureCubeMap1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTextureCubeMap::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_qt_metacall(
            self as *const crate::QTextureCubeMap as *mut crate::QTextureCubeMap,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTextureCubeMap::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_qt_metacast(
            self as *const crate::QTextureCubeMap as *mut crate::QTextureCubeMap,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureCubeMap::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureCubeMap::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMapArray</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureCubeMapArray```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMapArray</a> target format.</p></div>
#[repr(C)]
pub struct QTextureCubeMapArray {
    _unused: u8,
}
impl QTextureCubeMapArray {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTextureCubeMapArray::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_metaObject(
                self as *const crate::QTextureCubeMapArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTextureCubeMapArray.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureCubeMapArray::QTextureCubeMapArray(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html#QTextureCubeMapArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureCubeMapArray.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_QTextureCubeMapArray(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMapArray</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureCubeMapArray::QTextureCubeMapArray()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetCubeMapArray</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_QTextureCubeMapArray1(
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTextureCubeMapArray::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_qt_metacall(
            self as *const crate::QTextureCubeMapArray as *mut crate::QTextureCubeMapArray,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTextureCubeMapArray::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_qt_metacast(
            self as *const crate::QTextureCubeMapArray as *mut crate::QTextureCubeMapArray,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureCubeMapArray::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureCubeMapArray::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisample</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTexture2DMultisample```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisample</a> target format.</p></div>
#[repr(C)]
pub struct QTexture2DMultisample {
    _unused: u8,
}
impl QTexture2DMultisample {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTexture2DMultisample::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_metaObject(
                self as *const crate::QTexture2DMultisample,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTexture2DMultisample.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2DMultisample::QTexture2DMultisample(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html#QTexture2DMultisample">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTexture2DMultisample.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_QTexture2DMultisample(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent).as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisample</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2DMultisample::QTexture2DMultisample()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisample</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_QTexture2DMultisample1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTexture2DMultisample::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_qt_metacall(
            self as *const crate::QTexture2DMultisample as *mut crate::QTexture2DMultisample,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTexture2DMultisample::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_qt_metacast(
            self as *const crate::QTexture2DMultisample as *mut crate::QTexture2DMultisample,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2DMultisample::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2DMultisample::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisampleArray</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTexture2DMultisampleArray```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisampleArray</a> target format.</p></div>
#[repr(C)]
pub struct QTexture2DMultisampleArray {
    _unused: u8,
}
impl QTexture2DMultisampleArray {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTexture2DMultisampleArray::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_metaObject(
                self as *const crate::QTexture2DMultisampleArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTexture2DMultisampleArray.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2DMultisampleArray::QTexture2DMultisampleArray(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html#QTexture2DMultisampleArray">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTexture2DMultisampleArray.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_QTexture2DMultisampleArray(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent).as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisampleArray</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTexture2DMultisampleArray::QTexture2DMultisampleArray()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">Target2DMultisampleArray</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_QTexture2DMultisampleArray1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTexture2DMultisampleArray::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_qt_metacall(
            self as *const crate::QTexture2DMultisampleArray
                as *mut crate::QTexture2DMultisampleArray,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTexture2DMultisampleArray::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_qt_metacast(
            self as *const crate::QTexture2DMultisampleArray
                as *mut crate::QTexture2DMultisampleArray,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2DMultisampleArray::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTexture2DMultisampleArray::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetRectangle</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureRectangle```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetRectangle</a> target format.</p></div>
#[repr(C)]
pub struct QTextureRectangle {
    _unused: u8,
}
impl QTextureRectangle {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTextureRectangle::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_metaObject(
                self as *const crate::QTextureRectangle,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTextureRectangle.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureRectangle::QTextureRectangle(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html#QTextureRectangle">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureRectangle.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_QTextureRectangle(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetRectangle</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureRectangle::QTextureRectangle()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetRectangle</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_QTextureRectangle1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTextureRectangle::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_qt_metacall(
            self as *const crate::QTextureRectangle as *mut crate::QTextureRectangle,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTextureRectangle::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_qt_metacast(
            self as *const crate::QTextureRectangle as *mut crate::QTextureRectangle,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureRectangle::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureRectangle::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetBuffer</a> target format.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureBuffer```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetBuffer</a> target format.</p></div>
#[repr(C)]
pub struct QTextureBuffer {
    _unused: u8,
}
impl QTextureBuffer {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTextureBuffer::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_metaObject(
                self as *const crate::QTextureBuffer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTextureBuffer.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureBuffer::QTextureBuffer(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html#QTextureBuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureBuffer.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTextureBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_QTextureBuffer(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetBuffer</a> target format.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureBuffer::QTextureBuffer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">QAbstractTexture</a> with a <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html#Target-enum">TargetBuffer</a> target format.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTextureBuffer> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_QTextureBuffer1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTextureBuffer::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_qt_metacall(
            self as *const crate::QTextureBuffer as *mut crate::QTextureBuffer,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTextureBuffer::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_qt_metacast(
            self as *const crate::QTextureBuffer as *mut crate::QTextureBuffer,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureBuffer::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureBuffer::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Handles the texture loading and setting the texture's properties.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureLoader```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Handles the texture loading and setting the texture's properties.</p></div>
#[repr(C)]
pub struct QTextureLoader {
    _unused: u8,
}
impl QTextureLoader {
    /// <p>Sets the texture loader source to <i>source</i>. <i>source</i></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QTextureLoader::setSource` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture loader source to <i>source</i>. <i>source</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#source-prop">source</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#source-prop">source</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_source(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSource(QUrl const &)\0"),
            )
        }
    }

    /// <p>Sets mirroring to <i>mirrored</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QTextureLoader::setMirrored` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setMirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets mirroring to <i>mirrored</i>.</p>
    /// <p><b>Note: </b>This internally triggers a call to update the data generator.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#mirrored-prop">mirrored</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#mirrored-prop">isMirrored</a>().</p></div>
    #[inline(always)]
    pub fn slot_set_mirrored(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMirrored(bool)\0"),
            )
        }
    }

    /// <p>Returns the current texture source.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureLoader::sourceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current texture source.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setSource">setSource</a></b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn source_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2sourceChanged(QUrl const &)\0"),
            )
        }
    }

    /// <p>This property specifies whether the texture should be mirrored when loaded. This is a convenience to avoid having to manipulate images to match the origin of the texture coordinates used by the rendering API. By default this property is set to true. This has no effect when using compressed texture formats.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QTextureLoader::mirroredChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#mirrored-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property specifies whether the texture should be mirrored when loaded. This is a convenience to avoid having to manipulate images to match the origin of the texture coordinates used by the rendering API. By default this property is set to true. This has no effect when using compressed texture formats.</p>
    /// <p><b>Note: </b>OpenGL specifies the origin of texture coordinates from the lower left hand corner whereas DirectX uses the the upper left hand corner.</p><p><b>Note: </b>When using cube map texture you'll probably want mirroring disabled as the cube map sampler takes a direction rather than regular texture coordinates.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isMirrored</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setMirrored">setMirrored</a></b></span>(bool <i>mirrored</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mirroredChanged</b></span>(bool <i>mirrored</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn mirrored_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2mirroredChanged(bool)\0"),
            )
        }
    }

    /// <p>This property specifies whether the texture should be mirrored when loaded. This is a convenience to avoid having to manipulate images to match the origin of the texture coordinates used by the rendering API. By default this property is set to true. This has no effect when using compressed texture formats.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QTextureLoader::isMirrored() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#mirrored-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property specifies whether the texture should be mirrored when loaded. This is a convenience to avoid having to manipulate images to match the origin of the texture coordinates used by the rendering API. By default this property is set to true. This has no effect when using compressed texture formats.</p>
    /// <p><b>Note: </b>OpenGL specifies the origin of texture coordinates from the lower left hand corner whereas DirectX uses the the upper left hand corner.</p><p><b>Note: </b>When using cube map texture you'll probably want mirroring disabled as the cube map sampler takes a direction rather than regular texture coordinates.</p><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>isMirrored</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setMirrored">setMirrored</a></b></span>(bool <i>mirrored</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mirroredChanged</b></span>(bool <i>mirrored</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn is_mirrored(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_isMirrored(
            self as *const crate::QTextureLoader,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QTextureLoader::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_metaObject(
                self as *const crate::QTextureLoader,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QTextureLoader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureLoader::QTextureLoader(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#QTextureLoader">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QTextureLoader.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QTextureLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_QTextureLoader(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Handles the texture loading and setting the texture's properties.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureLoader::QTextureLoader()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Handles the texture loading and setting the texture's properties.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QTextureLoader> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_QTextureLoader1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QTextureLoader::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_qt_metacall(
            self as *const crate::QTextureLoader as *mut crate::QTextureLoader,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QTextureLoader::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_qt_metacast(
            self as *const crate::QTextureLoader as *mut crate::QTextureLoader,
            arg1,
        )
    }

    /// <p>Sets mirroring to <i>mirrored</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QTextureLoader::setMirrored(bool mirrored)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setMirrored">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets mirroring to <i>mirrored</i>.</p>
    /// <p><b>Note: </b>This internally triggers a call to update the data generator.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#mirrored-prop">mirrored</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#mirrored-prop">isMirrored</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_mirrored(&self, mirrored: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_setMirrored(
            self as *const crate::QTextureLoader as *mut crate::QTextureLoader,
            mirrored,
        )
    }

    /// <p>Sets the texture loader source to <i>source</i>. <i>source</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QTextureLoader::setSource(const QUrl& source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture loader source to <i>source</i>. <i>source</i></p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#source-prop">source</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#source-prop">source</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_source(
        &self,
        source: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_setSource(
            self as *const crate::QTextureLoader as *mut crate::QTextureLoader,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(source)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the current texture source.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QTextureLoader::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current texture source.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>source</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qtextureloader.html#setSource">setSource</a></b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>(const QUrl &amp;<i>source</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn source(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_source(
                self as *const crate::QTextureLoader,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureLoader::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QTextureLoader::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> class stores texture information such as the target, height, width, depth, layers, wrap, and if mipmaps are enabled.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureData```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> class stores texture information such as the target, height, width, depth, layers, wrap, and if mipmaps are enabled.</p></div>
#[repr(C)]
pub struct QTextureData {
    _unused: u8,
}
impl QTextureData {
    /// <p>Returns the current comparison function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonFunction Qt3DRender::QTextureData::comparisonFunction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#comparisonFunction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current comparison function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setComparisonFunction">setComparisonFunction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn comparison_function(&self) -> crate::q_abstract_texture::ComparisonFunction {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_comparisonFunction(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the current comparison mode.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonMode Qt3DRender::QTextureData::comparisonMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#comparisonMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current comparison mode.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setComparisonMode">setComparisonMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn comparison_mode(&self) -> crate::q_abstract_texture::ComparisonMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_comparisonMode(
            self as *const crate::QTextureData,
        )
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> class stores texture information such as the target, height, width, depth, layers, wrap, and if mipmaps are enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureData& Qt3DRender::QTextureData::operator=(const Qt3DRender::QTextureData& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> class stores texture information such as the target, height, width, depth, layers, wrap, and if mipmaps are enabled.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureData>>,
    ) -> ::cpp_core::Ref<crate::QTextureData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_operator_(
                self as *const crate::QTextureData as *mut crate::QTextureData,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureData>>::cast_into(other)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the texture depth.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureData::depth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#depth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture depth.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setDepth">setDepth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn depth(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_depth(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the texture format</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::TextureFormat Qt3DRender::QTextureData::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#format">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture format</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setFormat">setFormat</a>().</p></div>
    #[inline(always)]
    pub unsafe fn format(&self) -> crate::q_abstract_texture::TextureFormat {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_format(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the texture height.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureData::height() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#height">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture height.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setHeight">setHeight</a>().</p></div>
    #[inline(always)]
    pub unsafe fn height(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_height(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns whether the texture has auto mipmap generation enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QTextureData::isAutoMipMapGenerationEnabled() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#isAutoMipMapGenerationEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns whether the texture has auto mipmap generation enabled.</p></div>
    #[inline(always)]
    pub unsafe fn is_auto_mip_map_generation_enabled(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_isAutoMipMapGenerationEnabled(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the texture layers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureData::layers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#layers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture layers.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setLayers">setLayers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn layers(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_layers(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the current magnification filter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Filter Qt3DRender::QTextureData::magnificationFilter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#magnificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current magnification filter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setMagnificationFilter">setMagnificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn magnification_filter(&self) -> crate::q_abstract_texture::Filter {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_magnificationFilter(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the current maximum anisotropy.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QTextureData::maximumAnisotropy() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#maximumAnisotropy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current maximum anisotropy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setMaximumAnisotropy">setMaximumAnisotropy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn maximum_anisotropy(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_maximumAnisotropy(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the current minification filter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Filter Qt3DRender::QTextureData::minificationFilter() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#minificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current minification filter.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setMinificationFilter">setMinificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn minification_filter(&self) -> crate::q_abstract_texture::Filter {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_minificationFilter(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> instance.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureData::QTextureData()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#QTextureData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Creates a new <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> instance.</p></div>
    #[inline(always)]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextureData> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_QTextureData() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> class stores texture information such as the target, height, width, depth, layers, wrap, and if mipmaps are enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureData::QTextureData(const Qt3DRender::QTextureData& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html">QTextureData</a> class stores texture information such as the target, height, width, depth, layers, wrap, and if mipmaps are enabled.</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureData>>,
    ) -> ::cpp_core::CppBox<crate::QTextureData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_QTextureData1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureData>>::cast_into(other)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Sets whether the texture has automatic mipmap generation enabled, to <i>autoMipMap</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setAutoMipMapGenerationEnabled(bool isAutoMipMapGenerationEnabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setAutoMipMapGenerationEnabled">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets whether the texture has automatic mipmap generation enabled, to <i>autoMipMap</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#isAutoMipMapGenerationEnabled">isAutoMipMapGenerationEnabled</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_auto_mip_map_generation_enabled(
        &self,
        is_auto_mip_map_generation_enabled: bool,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setAutoMipMapGenerationEnabled(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            is_auto_mip_map_generation_enabled,
        )
    }

    /// <p>Sets the comparison function to <i>comparisonFunction</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setComparisonFunction(Qt3DRender::QAbstractTexture::ComparisonFunction comparisonFunction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setComparisonFunction">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the comparison function to <i>comparisonFunction</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#comparisonFunction">comparisonFunction</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_comparison_function(
        &self,
        comparison_function: crate::q_abstract_texture::ComparisonFunction,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setComparisonFunction(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            comparison_function,
        )
    }

    /// <p>Sets the comparison mode to <i>comparisonMode</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setComparisonMode(Qt3DRender::QAbstractTexture::ComparisonMode comparisonMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setComparisonMode">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the comparison mode to <i>comparisonMode</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#comparisonMode">comparisonMode</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_comparison_mode(
        &self,
        comparison_mode: crate::q_abstract_texture::ComparisonMode,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setComparisonMode(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            comparison_mode,
        )
    }

    /// <p>Sets the texture depth to <i>depth</i></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setDepth(int depth)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setDepth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture depth to <i>depth</i></p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#depth">depth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_depth(&self, depth: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setDepth(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            depth,
        )
    }

    /// <p>Sets the texture format to <i>format</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setFormat(Qt3DRender::QAbstractTexture::TextureFormat arg1)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setFormat">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture format to <i>format</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#format">format</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_format(&self, arg1: crate::q_abstract_texture::TextureFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setFormat(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            arg1,
        )
    }

    /// <p>Sets the target height to <i>height</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setHeight(int height)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setHeight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the target height to <i>height</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#height">height</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_height(&self, height: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setHeight(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            height,
        )
    }

    /// <p>Sets the texture layers to <i>layers</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setLayers(int layers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setLayers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture layers to <i>layers</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#layers">layers</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_layers(&self, layers: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setLayers(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            layers,
        )
    }

    /// <p>Sets the magnification filter to <i>filter</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setMagnificationFilter(Qt3DRender::QAbstractTexture::Filter filter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setMagnificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the magnification filter to <i>filter</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#magnificationFilter">magnificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_magnification_filter(&self, filter: crate::q_abstract_texture::Filter) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setMagnificationFilter(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            filter,
        )
    }

    /// <p>Sets the maximum anisotropy to <i>maximumAnisotropy</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setMaximumAnisotropy(float maximumAnisotropy)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setMaximumAnisotropy">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the maximum anisotropy to <i>maximumAnisotropy</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#maximumAnisotropy">maximumAnisotropy</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_maximum_anisotropy(&self, maximum_anisotropy: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setMaximumAnisotropy(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            maximum_anisotropy,
        )
    }

    /// <p>Sets the minification filter to <i>filter</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setMinificationFilter(Qt3DRender::QAbstractTexture::Filter filter)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setMinificationFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the minification filter to <i>filter</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#minificationFilter">minificationFilter</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_minification_filter(&self, filter: crate::q_abstract_texture::Filter) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setMinificationFilter(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            filter,
        )
    }

    /// <p>Sets the target texture to <i>target</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setTarget(Qt3DRender::QAbstractTexture::Target target)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setTarget">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the target texture to <i>target</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#target">target</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_target(&self, target: crate::q_abstract_texture::Target) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setTarget(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            target,
        )
    }

    /// <p>Sets the texture width to <i>width</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setWidth(int width)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the texture width to <i>width</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#width">width</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_width(&self, width: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setWidth(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            width,
        )
    }

    /// <p>Sets the wrap mode X to <i>wrapModeX</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setWrapModeX(Qt3DRender::QTextureWrapMode::WrapMode wrapModeX)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWrapModeX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode X to <i>wrapModeX</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#wrapModeX">wrapModeX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_wrap_mode_x(&self, wrap_mode_x: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setWrapModeX(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            wrap_mode_x,
        )
    }

    /// <p>Sets the wrap mode Y to <i>wrapModeY</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setWrapModeY(Qt3DRender::QTextureWrapMode::WrapMode wrapModeY)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWrapModeY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode Y to <i>wrapModeY</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#wrapModeY">wrapModeY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_wrap_mode_y(&self, wrap_mode_y: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setWrapModeY(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            wrap_mode_y,
        )
    }

    /// <p>Sets the wrap mode Z to <i>wrapModeZ</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureData::setWrapModeZ(Qt3DRender::QTextureWrapMode::WrapMode wrapModeZ)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWrapModeZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the wrap mode Z to <i>wrapModeZ</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#wrapModeZ">wrapModeZ</a>().</p></div>
    #[inline(always)]
    pub unsafe fn set_wrap_mode_z(&self, wrap_mode_z: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_setWrapModeZ(
            self as *const crate::QTextureData as *mut crate::QTextureData,
            wrap_mode_z,
        )
    }

    /// <p>Returns the texture data target.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::Target Qt3DRender::QTextureData::target() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#target">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture data target.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setTarget">setTarget</a>().</p></div>
    #[inline(always)]
    pub unsafe fn target(&self) -> crate::q_abstract_texture::Target {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_target(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the texture width.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureData::width() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#width">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the texture width.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWidth">setWidth</a>().</p></div>
    #[inline(always)]
    pub unsafe fn width(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_width(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the current wrap mode X.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode Qt3DRender::QTextureData::wrapModeX() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#wrapModeX">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current wrap mode X.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWrapModeX">setWrapModeX</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wrap_mode_x(&self) -> crate::q_texture_wrap_mode::WrapMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_wrapModeX(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the current wrap mode Y.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode Qt3DRender::QTextureData::wrapModeY() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#wrapModeY">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current wrap mode Y.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWrapModeY">setWrapModeY</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wrap_mode_y(&self) -> crate::q_texture_wrap_mode::WrapMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_wrapModeY(
            self as *const crate::QTextureData,
        )
    }

    /// <p>Returns the current wrap mode Z.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode Qt3DRender::QTextureData::wrapModeZ() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#wrapModeZ">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current wrap mode Z.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qtexturedata.html#setWrapModeZ">setWrapModeZ</a>().</p></div>
    #[inline(always)]
    pub unsafe fn wrap_mode_z(&self) -> crate::q_texture_wrap_mode::WrapMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_wrapModeZ(
            self as *const crate::QTextureData,
        )
    }
}

/// <p>Provides the image data for a texture.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureGenerator```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturegenerator.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Provides the image data for a texture.</p></div>
#[repr(C)]
pub struct QTextureGenerator {
    _unused: u8,
}
/// <p>A viewport on the Qt3D Scene</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QViewport```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A viewport on the Qt3D Scene</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">Qt3DRender::QViewport</a> of the scene specifies at which portion of the render surface Qt3D is rendering to. Area outside the viewport is left untouched. It also controls global parameters to the rendering in that viewport like gamma.</p></div>
#[repr(C)]
pub struct QViewport {
    _unused: u8,
}
impl QViewport {
    /// <p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QViewport::setNormalizedRect` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#normalizedRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormalizedRect</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRectChanged</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_normalized_rect(&self) -> ::qt_core::Receiver<(*const ::qt_core::QRectF,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setNormalizedRect(QRectF const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QViewport::setGamma` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#gamma-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>gamma</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGamma</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>gammaChanged</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn slot_set_gamma(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setGamma(float)\0"),
            )
        }
    }

    /// <p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QViewport::normalizedRectChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#normalizedRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormalizedRect</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRectChanged</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn normalized_rect_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QRectF,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2normalizedRectChanged(QRectF const &)\0",
                ),
            )
        }
    }

    /// <p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QViewport::gammaChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#gamma-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>gamma</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGamma</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>gammaChanged</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub fn gamma_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2gammaChanged(float)\0"),
            )
        }
    }

    /// <p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QViewport::gamma() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#gamma-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>gamma</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGamma</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>gammaChanged</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn gamma(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_gamma(
            self as *const crate::QViewport,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QViewport::metaObject() const```</span>.
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_metaObject(
                self as *const crate::QViewport,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QViewport.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QViewport::QViewport(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#QViewport">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QViewport.</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_QViewport(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>A viewport on the Qt3D Scene</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QViewport::QViewport()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>A viewport on the Qt3D Scene</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">Qt3DRender::QViewport</a> of the scene specifies at which portion of the render surface Qt3D is rendering to. Area outside the viewport is left untouched. It also controls global parameters to the rendering in that viewport like gamma.</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QViewport> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_QViewport1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF Qt3DRender::QViewport::normalizedRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#normalizedRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormalizedRect</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRectChanged</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn normalized_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_normalizedRect(
                self as *const crate::QViewport,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QViewport::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_qt_metacall(
            self as *const crate::QViewport as *mut crate::QViewport,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QViewport::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_qt_metacast(
            self as *const crate::QViewport as *mut crate::QViewport,
            arg1,
        )
    }

    /// <p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QViewport::setGamma(float gamma)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#gamma-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the gamma factor for the viewport. The default is 2.2 which should give proper result on most screens.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>gamma</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGamma</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>gammaChanged</b></span>(float <i>gamma</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_gamma(&self, gamma: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_setGamma(
            self as *const crate::QViewport as *mut crate::QViewport,
            gamma,
        )
    }

    /// <p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QViewport::setNormalizedRect(const QRectF& normalizedRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html#normalizedRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the normalised rectangle for the viewport, i.e. the viewport rectangle is specified relative to the render surface size. Whole surface sized viewport is specified as [0.0, 0.0, 1.0, 1.0], which is the default.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRect</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNormalizedRect</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>normalizedRectChanged</b></span>(const QRectF &amp;<i>normalizedRect</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    pub unsafe fn set_normalized_rect(
        &self,
        normalized_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_setNormalizedRect(
            self as *const crate::QViewport as *mut crate::QViewport,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(normalized_rect)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QViewport::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QViewport::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQAbstractTextureImage {
    _unused: u8,
}
impl QVectorOfQAbstractTextureImage {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>& QVector<Qt3DRender::QAbstractTextureImage*>::operator+=(const QVector<Qt3DRender::QAbstractTextureImage*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_abstract_texture_image(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator__4(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(l).as_raw_ptr())
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>& QVector<Qt3DRender::QAbstractTextureImage*>::operator+=(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_abstract_texture_image(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator__5(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage, t)
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::append(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_abstract_texture_image(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_append(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::append(const QVector<Qt3DRender::QAbstractTextureImage*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_abstract_texture_image(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_append2(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(l).as_raw_ptr())
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_at(
            self as *const crate::QVectorOfQAbstractTextureImage,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_back(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_back1(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_capacity(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_clear(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage** QVector<Qt3DRender::QAbstractTextureImage*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_constData(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_constFirst(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_constLast(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::contains(const Qt3DRender::QAbstractTextureImage*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QAbstractTextureImage) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_contains(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>& QVector<Qt3DRender::QAbstractTextureImage*>::operator=(const QVector<Qt3DRender::QAbstractTextureImage*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator_(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(v).as_raw_ptr())
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::count(const Qt3DRender::QAbstractTextureImage*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_count(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_count1(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage** QVector<Qt3DRender::QAbstractTextureImage*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_data(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage** QVector<Qt3DRender::QAbstractTextureImage*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_data1(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_detach(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_empty(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::endsWith(const Qt3DRender::QAbstractTextureImage*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QAbstractTextureImage) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_endsWith(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>& QVector<Qt3DRender::QAbstractTextureImage*>::fill(const Qt3DRender::QAbstractTextureImage*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_fill(
                self as *const crate::QVectorOfQAbstractTextureImage
                    as *mut crate::QVectorOfQAbstractTextureImage,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>& QVector<Qt3DRender::QAbstractTextureImage*>::fill(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_fill1(
                self as *const crate::QVectorOfQAbstractTextureImage
                    as *mut crate::QVectorOfQAbstractTextureImage,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_first(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_first1(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_front(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_front1(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &self,
        i: ::std::os::raw::c_int,
    ) -> *mut *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator__2(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator__3(
            self as *const crate::QVectorOfQAbstractTextureImage,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::indexOf(const Qt3DRender::QAbstractTextureImage*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_indexOf(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::indexOf(const Qt3DRender::QAbstractTextureImage*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_indexOf1(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::insert(int i, const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &self,
        i: ::std::os::raw::c_int,
        t: *const *mut crate::QAbstractTextureImage,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_insert(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::insert(int i, int n, const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QAbstractTextureImage,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_insert1(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_isDetached(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_isEmpty(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::isSharedWith(const QVector<Qt3DRender::QAbstractTextureImage*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_isSharedWith(self as *const crate::QVectorOfQAbstractTextureImage, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(other).as_raw_ptr())
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_last(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage*& QVector<Qt3DRender::QAbstractTextureImage*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_last1(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::lastIndexOf(const Qt3DRender::QAbstractTextureImage*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_lastIndexOf(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::lastIndexOf(const Qt3DRender::QAbstractTextureImage*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_length(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*> QVector<Qt3DRender::QAbstractTextureImage*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_mid(
                self as *const crate::QVectorOfQAbstractTextureImage,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*> QVector<Qt3DRender::QAbstractTextureImage*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_mid1(
                self as *const crate::QVectorOfQAbstractTextureImage,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_move(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAbstractTextureImage*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_QVector(
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAbstractTextureImage*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_QVector1(
                size,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAbstractTextureImage*>::QVector(int size, const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_QVector2(
                size, t,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAbstractTextureImage*>::QVector(const QVector<Qt3DRender::QAbstractTextureImage*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_QVector3(::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(v).as_raw_ptr())
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_pop_back(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_pop_front(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::prepend(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QAbstractTextureImage) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_prepend(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::push_back(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QAbstractTextureImage) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_push_back(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::push_front(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QAbstractTextureImage) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_push_front(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_remove(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_remove1(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::removeAll(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &self,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_removeAll(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_removeAt(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_removeFirst(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_removeLast(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::removeOne(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QAbstractTextureImage) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_removeOne(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::replace(int i, const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &self,
        i: ::std::os::raw::c_int,
        t: *const *mut crate::QAbstractTextureImage,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_replace(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_reserve(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_resize(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_setSharable(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_shrink_to_fit(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_size(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_squeeze(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::startsWith(const Qt3DRender::QAbstractTextureImage*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QAbstractTextureImage) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_startsWith(
            self as *const crate::QVectorOfQAbstractTextureImage,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::swap(QVector<Qt3DRender::QAbstractTextureImage*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_swap(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(other).as_raw_ptr() as *mut crate::QVectorOfQAbstractTextureImage)
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAbstractTextureImage*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_swapItemsAt(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* QVector<Qt3DRender::QAbstractTextureImage*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::qt_core::QPtr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_takeAt(
                self as *const crate::QVectorOfQAbstractTextureImage
                    as *mut crate::QVectorOfQAbstractTextureImage,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* QVector<Qt3DRender::QAbstractTextureImage*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_takeFirst(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage)
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* QVector<Qt3DRender::QAbstractTextureImage*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_takeLast(
                self as *const crate::QVectorOfQAbstractTextureImage
                    as *mut crate::QVectorOfQAbstractTextureImage,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* QVector<Qt3DRender::QAbstractTextureImage*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::qt_core::QPtr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_value(
                self as *const crate::QVectorOfQAbstractTextureImage,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* QVector<Qt3DRender::QAbstractTextureImage*>::value(int i, const Qt3DRender::QAbstractTextureImage*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QAbstractTextureImage,
    ) -> ::qt_core::QPtr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_value1(
                self as *const crate::QVectorOfQAbstractTextureImage,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQParameter {
    _unused: u8,
}
impl QVectorOfQParameter {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>& QVector<Qt3DRender::QParameter*>::operator+=(const QVector<Qt3DRender::QParameter*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_parameter(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator__4(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>& QVector<Qt3DRender::QParameter*>::operator+=(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_parameter(
        &self,
        t: *const *mut crate::QParameter,
    ) -> ::cpp_core::Ref<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator__5(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::append(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_parameter(&self, t: *const *mut crate::QParameter) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_append(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::append(const QVector<Qt3DRender::QParameter*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_parameter(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_append2(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_at(
            self as *const crate::QVectorOfQParameter,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_back(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_back1(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_capacity(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_clear(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter** QVector<Qt3DRender::QParameter*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_constData(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_constFirst(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_constLast(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::contains(const Qt3DRender::QParameter*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QParameter) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_contains(
            self as *const crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>& QVector<Qt3DRender::QParameter*>::operator=(const QVector<Qt3DRender::QParameter*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator_(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::count(const Qt3DRender::QParameter*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(&self, t: *const *mut crate::QParameter) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_count(
            self as *const crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_count1(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter** QVector<Qt3DRender::QParameter*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_data(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter** QVector<Qt3DRender::QParameter*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_data1(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_detach(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_empty(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::endsWith(const Qt3DRender::QParameter*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QParameter) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_endsWith(
            self as *const crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>& QVector<Qt3DRender::QParameter*>::fill(const Qt3DRender::QParameter*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QParameter,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_fill(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>& QVector<Qt3DRender::QParameter*>::fill(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QParameter,
    ) -> ::cpp_core::Ref<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_fill1(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_first(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_first1(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_front(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_front1(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&self, i: ::std::os::raw::c_int) -> *mut *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator__2(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator__3(
            self as *const crate::QVectorOfQParameter,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::indexOf(const Qt3DRender::QParameter*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QParameter,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_indexOf(
            self as *const crate::QVectorOfQParameter,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::indexOf(const Qt3DRender::QParameter*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(&self, t: *const *mut crate::QParameter) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_indexOf1(
            self as *const crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::insert(int i, const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QParameter) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_insert(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::insert(int i, int n, const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QParameter,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_insert1(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_isDetached(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_isEmpty(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::isSharedWith(const QVector<Qt3DRender::QParameter*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_isSharedWith(
            self as *const crate::QVectorOfQParameter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_last(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter*& QVector<Qt3DRender::QParameter*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_last1(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::lastIndexOf(const Qt3DRender::QParameter*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QParameter,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_lastIndexOf(
            self as *const crate::QVectorOfQParameter,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::lastIndexOf(const Qt3DRender::QParameter*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QParameter,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_length(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> QVector<Qt3DRender::QParameter*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_mid(
                self as *const crate::QVectorOfQParameter,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> QVector<Qt3DRender::QParameter*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_mid1(
                self as *const crate::QVectorOfQParameter,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_move(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QParameter*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QParameter*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_QVector1(size) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QParameter*>::QVector(int size, const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QParameter,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_QVector2(size, t)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QParameter*>::QVector(const QVector<Qt3DRender::QParameter*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_pop_back(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_pop_front(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::prepend(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QParameter) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_prepend(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::push_back(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QParameter) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_push_back(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::push_front(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QParameter) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_push_front(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_remove(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_remove1(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::removeAll(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(&self, t: *const *mut crate::QParameter) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_removeAll(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_removeAt(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_removeFirst(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_removeLast(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::removeOne(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QParameter) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_removeOne(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::replace(int i, const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QParameter) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_replace(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_reserve(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_resize(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_setSharable(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_size(
            self as *const crate::QVectorOfQParameter,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_squeeze(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::startsWith(const Qt3DRender::QParameter*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QParameter) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_startsWith(
            self as *const crate::QVectorOfQParameter,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::swap(QVector<Qt3DRender::QParameter*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_swap(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQParameter,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QParameter*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_swapItemsAt(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* QVector<Qt3DRender::QParameter*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_takeAt(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* QVector<Qt3DRender::QParameter*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_takeFirst(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* QVector<Qt3DRender::QParameter*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_takeLast(
                self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* QVector<Qt3DRender::QParameter*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_value(
                self as *const crate::QVectorOfQParameter,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* QVector<Qt3DRender::QParameter*>::value(int i, const Qt3DRender::QParameter*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QParameter,
    ) -> ::qt_core::QPtr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_value1(
                self as *const crate::QVectorOfQParameter,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQTechnique {
    _unused: u8,
}
impl QVectorOfQTechnique {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>& QVector<Qt3DRender::QTechnique*>::operator+=(const QVector<Qt3DRender::QTechnique*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_technique(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator__4(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>& QVector<Qt3DRender::QTechnique*>::operator+=(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_technique(
        &self,
        t: *const *mut crate::QTechnique,
    ) -> ::cpp_core::Ref<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator__5(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::append(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_technique(&self, t: *const *mut crate::QTechnique) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_append(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::append(const QVector<Qt3DRender::QTechnique*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_technique(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_append2(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_at(
            self as *const crate::QVectorOfQTechnique,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_back(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_back1(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_capacity(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_clear(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique** QVector<Qt3DRender::QTechnique*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_constData(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_constFirst(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_constLast(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::contains(const Qt3DRender::QTechnique*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QTechnique) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_contains(
            self as *const crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>& QVector<Qt3DRender::QTechnique*>::operator=(const QVector<Qt3DRender::QTechnique*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator_(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::count(const Qt3DRender::QTechnique*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(&self, t: *const *mut crate::QTechnique) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_count(
            self as *const crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_count1(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique** QVector<Qt3DRender::QTechnique*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_data(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique** QVector<Qt3DRender::QTechnique*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_data1(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_detach(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_empty(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::endsWith(const Qt3DRender::QTechnique*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QTechnique) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_endsWith(
            self as *const crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>& QVector<Qt3DRender::QTechnique*>::fill(const Qt3DRender::QTechnique*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QTechnique,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_fill(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>& QVector<Qt3DRender::QTechnique*>::fill(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QTechnique,
    ) -> ::cpp_core::Ref<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_fill1(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_first(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_first1(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_front(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_front1(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&self, i: ::std::os::raw::c_int) -> *mut *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator__2(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator__3(
            self as *const crate::QVectorOfQTechnique,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::indexOf(const Qt3DRender::QTechnique*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QTechnique,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_indexOf(
            self as *const crate::QVectorOfQTechnique,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::indexOf(const Qt3DRender::QTechnique*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(&self, t: *const *mut crate::QTechnique) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_indexOf1(
            self as *const crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::insert(int i, const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QTechnique) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_insert(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::insert(int i, int n, const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QTechnique,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_insert1(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_isDetached(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_isEmpty(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::isSharedWith(const QVector<Qt3DRender::QTechnique*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_isSharedWith(
            self as *const crate::QVectorOfQTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_last(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique*& QVector<Qt3DRender::QTechnique*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_last1(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::lastIndexOf(const Qt3DRender::QTechnique*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QTechnique,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_lastIndexOf(
            self as *const crate::QVectorOfQTechnique,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::lastIndexOf(const Qt3DRender::QTechnique*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QTechnique,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_length(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*> QVector<Qt3DRender::QTechnique*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_mid(
                self as *const crate::QVectorOfQTechnique,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*> QVector<Qt3DRender::QTechnique*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_mid1(
                self as *const crate::QVectorOfQTechnique,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_move(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QTechnique*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QTechnique*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_QVector1(size) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QTechnique*>::QVector(int size, const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QTechnique,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_QVector2(size, t)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QTechnique*>::QVector(const QVector<Qt3DRender::QTechnique*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_pop_back(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_pop_front(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::prepend(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QTechnique) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_prepend(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::push_back(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QTechnique) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_push_back(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::push_front(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QTechnique) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_push_front(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_remove(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_remove1(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::removeAll(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(&self, t: *const *mut crate::QTechnique) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_removeAll(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_removeAt(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_removeFirst(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_removeLast(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::removeOne(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QTechnique) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_removeOne(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::replace(int i, const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QTechnique) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_replace(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_reserve(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_resize(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_setSharable(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_size(
            self as *const crate::QVectorOfQTechnique,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_squeeze(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::startsWith(const Qt3DRender::QTechnique*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QTechnique) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_startsWith(
            self as *const crate::QVectorOfQTechnique,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::swap(QVector<Qt3DRender::QTechnique*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_swap(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQTechnique,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QTechnique*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_swapItemsAt(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* QVector<Qt3DRender::QTechnique*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_takeAt(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* QVector<Qt3DRender::QTechnique*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_takeFirst(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* QVector<Qt3DRender::QTechnique*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_takeLast(
                self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* QVector<Qt3DRender::QTechnique*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_value(
                self as *const crate::QVectorOfQTechnique,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* QVector<Qt3DRender::QTechnique*>::value(int i, const Qt3DRender::QTechnique*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QTechnique,
    ) -> ::qt_core::QPtr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_value1(
                self as *const crate::QVectorOfQTechnique,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQAttribute {
    _unused: u8,
}
impl QVectorOfQAttribute {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>& QVector<Qt3DRender::QAttribute*>::operator+=(const QVector<Qt3DRender::QAttribute*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_attribute(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator__4(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>& QVector<Qt3DRender::QAttribute*>::operator+=(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_attribute(
        &self,
        t: *const *mut crate::QAttribute,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator__5(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::append(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_attribute(&self, t: *const *mut crate::QAttribute) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_append(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::append(const QVector<Qt3DRender::QAttribute*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_attribute(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_append2(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_at(
            self as *const crate::QVectorOfQAttribute,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_back(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_back1(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_capacity(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_clear(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute** QVector<Qt3DRender::QAttribute*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_constData(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_constFirst(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_constLast(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::contains(const Qt3DRender::QAttribute*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QAttribute) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_contains(
            self as *const crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>& QVector<Qt3DRender::QAttribute*>::operator=(const QVector<Qt3DRender::QAttribute*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator_(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::count(const Qt3DRender::QAttribute*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(&self, t: *const *mut crate::QAttribute) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_count(
            self as *const crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_count1(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute** QVector<Qt3DRender::QAttribute*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_data(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute** QVector<Qt3DRender::QAttribute*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_data1(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_detach(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_empty(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::endsWith(const Qt3DRender::QAttribute*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QAttribute) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_endsWith(
            self as *const crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>& QVector<Qt3DRender::QAttribute*>::fill(const Qt3DRender::QAttribute*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QAttribute,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_fill(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>& QVector<Qt3DRender::QAttribute*>::fill(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QAttribute,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_fill1(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_first(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_first1(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_front(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_front1(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&self, i: ::std::os::raw::c_int) -> *mut *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator__2(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator__3(
            self as *const crate::QVectorOfQAttribute,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::indexOf(const Qt3DRender::QAttribute*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QAttribute,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_indexOf(
            self as *const crate::QVectorOfQAttribute,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::indexOf(const Qt3DRender::QAttribute*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(&self, t: *const *mut crate::QAttribute) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_indexOf1(
            self as *const crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::insert(int i, const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QAttribute) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_insert(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::insert(int i, int n, const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QAttribute,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_insert1(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_isDetached(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_isEmpty(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::isSharedWith(const QVector<Qt3DRender::QAttribute*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_isSharedWith(
            self as *const crate::QVectorOfQAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_last(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute*& QVector<Qt3DRender::QAttribute*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_last1(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::lastIndexOf(const Qt3DRender::QAttribute*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QAttribute,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_lastIndexOf(
            self as *const crate::QVectorOfQAttribute,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::lastIndexOf(const Qt3DRender::QAttribute*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QAttribute,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_length(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*> QVector<Qt3DRender::QAttribute*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_mid(
                self as *const crate::QVectorOfQAttribute,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*> QVector<Qt3DRender::QAttribute*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_mid1(
                self as *const crate::QVectorOfQAttribute,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_move(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAttribute*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAttribute*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_QVector1(size) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAttribute*>::QVector(int size, const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QAttribute,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_QVector2(size, t)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QAttribute*>::QVector(const QVector<Qt3DRender::QAttribute*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_pop_back(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_pop_front(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::prepend(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QAttribute) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_prepend(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::push_back(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QAttribute) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_push_back(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::push_front(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QAttribute) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_push_front(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_remove(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_remove1(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::removeAll(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(&self, t: *const *mut crate::QAttribute) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_removeAll(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_removeAt(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_removeFirst(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_removeLast(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::removeOne(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QAttribute) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_removeOne(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::replace(int i, const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QAttribute) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_replace(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_reserve(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_resize(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_setSharable(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_size(
            self as *const crate::QVectorOfQAttribute,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_squeeze(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::startsWith(const Qt3DRender::QAttribute*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QAttribute) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_startsWith(
            self as *const crate::QVectorOfQAttribute,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::swap(QVector<Qt3DRender::QAttribute*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_swap(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQAttribute,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QAttribute*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_swapItemsAt(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* QVector<Qt3DRender::QAttribute*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_takeAt(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* QVector<Qt3DRender::QAttribute*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_takeFirst(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* QVector<Qt3DRender::QAttribute*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_takeLast(
                self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* QVector<Qt3DRender::QAttribute*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_value(
                self as *const crate::QVectorOfQAttribute,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* QVector<Qt3DRender::QAttribute*>::value(int i, const Qt3DRender::QAttribute*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QAttribute,
    ) -> ::qt_core::QPtr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_value1(
                self as *const crate::QVectorOfQAttribute,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQLayer {
    _unused: u8,
}
impl QVectorOfQLayer {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>& QVector<Qt3DRender::QLayer*>::operator+=(const QVector<Qt3DRender::QLayer*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_layer(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator__4(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>& QVector<Qt3DRender::QLayer*>::operator+=(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_layer(
        &self,
        t: *const *mut crate::QLayer,
    ) -> ::cpp_core::Ref<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator__5(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::append(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_layer(&self, t: *const *mut crate::QLayer) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_append(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::append(const QVector<Qt3DRender::QLayer*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_layer(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_append2(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_at(
            self as *const crate::QVectorOfQLayer,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_back(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_back1(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_capacity(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_clear(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer** QVector<Qt3DRender::QLayer*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_constData(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_constFirst(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_constLast(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::contains(const Qt3DRender::QLayer*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QLayer) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_contains(
            self as *const crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>& QVector<Qt3DRender::QLayer*>::operator=(const QVector<Qt3DRender::QLayer*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator_(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::count(const Qt3DRender::QLayer*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(&self, t: *const *mut crate::QLayer) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_count(
            self as *const crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_count1(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer** QVector<Qt3DRender::QLayer*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_data(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer** QVector<Qt3DRender::QLayer*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_data1(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_detach(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_empty(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::endsWith(const Qt3DRender::QLayer*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QLayer) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_endsWith(
            self as *const crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>& QVector<Qt3DRender::QLayer*>::fill(const Qt3DRender::QLayer*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QLayer,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_fill(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>& QVector<Qt3DRender::QLayer*>::fill(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QLayer,
    ) -> ::cpp_core::Ref<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_fill1(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_first(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_first1(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_front(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_front1(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&self, i: ::std::os::raw::c_int) -> *mut *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator__2(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator__3(
            self as *const crate::QVectorOfQLayer,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::indexOf(const Qt3DRender::QLayer*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QLayer,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_indexOf(
            self as *const crate::QVectorOfQLayer,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::indexOf(const Qt3DRender::QLayer*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(&self, t: *const *mut crate::QLayer) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_indexOf1(
            self as *const crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::insert(int i, const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QLayer) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_insert(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::insert(int i, int n, const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QLayer,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_insert1(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_isDetached(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_isEmpty(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::isSharedWith(const QVector<Qt3DRender::QLayer*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_isSharedWith(
            self as *const crate::QVectorOfQLayer,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_last(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer*& QVector<Qt3DRender::QLayer*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_last1(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::lastIndexOf(const Qt3DRender::QLayer*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QLayer,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_lastIndexOf(
            self as *const crate::QVectorOfQLayer,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::lastIndexOf(const Qt3DRender::QLayer*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(&self, t: *const *mut crate::QLayer) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_length(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*> QVector<Qt3DRender::QLayer*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_mid(
                self as *const crate::QVectorOfQLayer,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*> QVector<Qt3DRender::QLayer*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_mid1(
                self as *const crate::QVectorOfQLayer,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_move(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QLayer*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QLayer*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_QVector1(size) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QLayer*>::QVector(int size, const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QLayer,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_QVector2(size, t) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QLayer*>::QVector(const QVector<Qt3DRender::QLayer*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_pop_back(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_pop_front(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::prepend(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QLayer) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_prepend(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::push_back(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QLayer) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_push_back(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::push_front(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QLayer) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_push_front(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_remove(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_remove1(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::removeAll(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(&self, t: *const *mut crate::QLayer) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_removeAll(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_removeAt(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_removeFirst(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_removeLast(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::removeOne(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QLayer) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_removeOne(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::replace(int i, const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QLayer) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_replace(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_reserve(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_resize(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_setSharable(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_size(
            self as *const crate::QVectorOfQLayer,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_squeeze(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::startsWith(const Qt3DRender::QLayer*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QLayer) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_startsWith(
            self as *const crate::QVectorOfQLayer,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::swap(QVector<Qt3DRender::QLayer*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_swap(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQLayer,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QLayer*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_swapItemsAt(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* QVector<Qt3DRender::QLayer*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_takeAt(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* QVector<Qt3DRender::QLayer*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_takeFirst(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* QVector<Qt3DRender::QLayer*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_takeLast(
                self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* QVector<Qt3DRender::QLayer*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_value(
                self as *const crate::QVectorOfQLayer,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* QVector<Qt3DRender::QLayer*>::value(int i, const Qt3DRender::QLayer*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QLayer,
    ) -> ::qt_core::QPtr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_value1(
                self as *const crate::QVectorOfQLayer,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQFilterKey {
    _unused: u8,
}
impl QVectorOfQFilterKey {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>& QVector<Qt3DRender::QFilterKey*>::operator+=(const QVector<Qt3DRender::QFilterKey*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_filter_key(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator__4(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>& QVector<Qt3DRender::QFilterKey*>::operator+=(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_filter_key(
        &self,
        t: *const *mut crate::QFilterKey,
    ) -> ::cpp_core::Ref<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator__5(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::append(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_filter_key(&self, t: *const *mut crate::QFilterKey) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_append(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::append(const QVector<Qt3DRender::QFilterKey*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_filter_key(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_append2(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_at(
            self as *const crate::QVectorOfQFilterKey,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_back(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_back1(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_capacity(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_clear(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey** QVector<Qt3DRender::QFilterKey*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_constData(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_constFirst(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_constLast(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::contains(const Qt3DRender::QFilterKey*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QFilterKey) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_contains(
            self as *const crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>& QVector<Qt3DRender::QFilterKey*>::operator=(const QVector<Qt3DRender::QFilterKey*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator_(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::count(const Qt3DRender::QFilterKey*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(&self, t: *const *mut crate::QFilterKey) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_count(
            self as *const crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_count1(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey** QVector<Qt3DRender::QFilterKey*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_data(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey** QVector<Qt3DRender::QFilterKey*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_data1(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_detach(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_empty(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::endsWith(const Qt3DRender::QFilterKey*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QFilterKey) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_endsWith(
            self as *const crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>& QVector<Qt3DRender::QFilterKey*>::fill(const Qt3DRender::QFilterKey*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QFilterKey,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_fill(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>& QVector<Qt3DRender::QFilterKey*>::fill(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QFilterKey,
    ) -> ::cpp_core::Ref<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_fill1(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_first(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_first1(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_front(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_front1(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&self, i: ::std::os::raw::c_int) -> *mut *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator__2(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator__3(
            self as *const crate::QVectorOfQFilterKey,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::indexOf(const Qt3DRender::QFilterKey*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QFilterKey,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_indexOf(
            self as *const crate::QVectorOfQFilterKey,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::indexOf(const Qt3DRender::QFilterKey*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(&self, t: *const *mut crate::QFilterKey) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_indexOf1(
            self as *const crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::insert(int i, const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QFilterKey) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_insert(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::insert(int i, int n, const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QFilterKey,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_insert1(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_isDetached(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_isEmpty(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::isSharedWith(const QVector<Qt3DRender::QFilterKey*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_isSharedWith(
            self as *const crate::QVectorOfQFilterKey,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_last(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey*& QVector<Qt3DRender::QFilterKey*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_last1(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::lastIndexOf(const Qt3DRender::QFilterKey*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QFilterKey,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_lastIndexOf(
            self as *const crate::QVectorOfQFilterKey,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::lastIndexOf(const Qt3DRender::QFilterKey*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QFilterKey,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_length(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*> QVector<Qt3DRender::QFilterKey*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_mid(
                self as *const crate::QVectorOfQFilterKey,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*> QVector<Qt3DRender::QFilterKey*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_mid1(
                self as *const crate::QVectorOfQFilterKey,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_move(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QFilterKey*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QFilterKey*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_QVector1(size) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QFilterKey*>::QVector(int size, const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QFilterKey,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_QVector2(size, t)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QFilterKey*>::QVector(const QVector<Qt3DRender::QFilterKey*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_pop_back(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_pop_front(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::prepend(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QFilterKey) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_prepend(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::push_back(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QFilterKey) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_push_back(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::push_front(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QFilterKey) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_push_front(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_remove(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_remove1(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::removeAll(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(&self, t: *const *mut crate::QFilterKey) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_removeAll(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_removeAt(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_removeFirst(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_removeLast(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::removeOne(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QFilterKey) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_removeOne(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::replace(int i, const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QFilterKey) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_replace(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_reserve(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_resize(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_setSharable(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_size(
            self as *const crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_squeeze(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::startsWith(const Qt3DRender::QFilterKey*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QFilterKey) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_startsWith(
            self as *const crate::QVectorOfQFilterKey,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::swap(QVector<Qt3DRender::QFilterKey*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_swap(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQFilterKey,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QFilterKey*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_swapItemsAt(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* QVector<Qt3DRender::QFilterKey*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_takeAt(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* QVector<Qt3DRender::QFilterKey*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_takeFirst(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* QVector<Qt3DRender::QFilterKey*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_takeLast(
                self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* QVector<Qt3DRender::QFilterKey*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_value(
                self as *const crate::QVectorOfQFilterKey,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* QVector<Qt3DRender::QFilterKey*>::value(int i, const Qt3DRender::QFilterKey*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QFilterKey,
    ) -> ::qt_core::QPtr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_value1(
                self as *const crate::QVectorOfQFilterKey,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQRenderState {
    _unused: u8,
}
impl QVectorOfQRenderState {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>& QVector<Qt3DRender::QRenderState*>::operator+=(const QVector<Qt3DRender::QRenderState*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_render_state(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator__4(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>& QVector<Qt3DRender::QRenderState*>::operator+=(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_render_state(
        &self,
        t: *const *mut crate::QRenderState,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator__5(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::append(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_render_state(&self, t: *const *mut crate::QRenderState) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_append(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::append(const QVector<Qt3DRender::QRenderState*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_render_state(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_append2(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_at(
            self as *const crate::QVectorOfQRenderState,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_back(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_back1(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_capacity(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_clear(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState** QVector<Qt3DRender::QRenderState*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_constData(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_constFirst(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_constLast(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::contains(const Qt3DRender::QRenderState*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QRenderState) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_contains(
            self as *const crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>& QVector<Qt3DRender::QRenderState*>::operator=(const QVector<Qt3DRender::QRenderState*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator_(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::count(const Qt3DRender::QRenderState*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(&self, t: *const *mut crate::QRenderState) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_count(
            self as *const crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_count1(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState** QVector<Qt3DRender::QRenderState*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_data(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState** QVector<Qt3DRender::QRenderState*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_data1(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_detach(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_empty(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::endsWith(const Qt3DRender::QRenderState*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QRenderState) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_endsWith(
            self as *const crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>& QVector<Qt3DRender::QRenderState*>::fill(const Qt3DRender::QRenderState*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QRenderState,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_fill(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>& QVector<Qt3DRender::QRenderState*>::fill(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QRenderState,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_fill1(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_first(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_first1(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_front(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_front1(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&self, i: ::std::os::raw::c_int) -> *mut *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator__2(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator__3(
            self as *const crate::QVectorOfQRenderState,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::indexOf(const Qt3DRender::QRenderState*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QRenderState,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_indexOf(
            self as *const crate::QVectorOfQRenderState,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::indexOf(const Qt3DRender::QRenderState*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(&self, t: *const *mut crate::QRenderState) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_indexOf1(
            self as *const crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::insert(int i, const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QRenderState) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_insert(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::insert(int i, int n, const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderState,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_insert1(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_isDetached(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_isEmpty(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::isSharedWith(const QVector<Qt3DRender::QRenderState*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_isSharedWith(
            self as *const crate::QVectorOfQRenderState,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_last(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState*& QVector<Qt3DRender::QRenderState*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_last1(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::lastIndexOf(const Qt3DRender::QRenderState*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QRenderState,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_lastIndexOf(
            self as *const crate::QVectorOfQRenderState,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::lastIndexOf(const Qt3DRender::QRenderState*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QRenderState,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_length(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*> QVector<Qt3DRender::QRenderState*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_mid(
                self as *const crate::QVectorOfQRenderState,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*> QVector<Qt3DRender::QRenderState*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_mid1(
                self as *const crate::QVectorOfQRenderState,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_move(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderState*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderState*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_QVector1(size)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderState*>::QVector(int size, const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderState,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_QVector2(size, t)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderState*>::QVector(const QVector<Qt3DRender::QRenderState*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_pop_back(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_pop_front(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::prepend(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QRenderState) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_prepend(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::push_back(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QRenderState) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_push_back(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::push_front(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QRenderState) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_push_front(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_remove(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_remove1(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::removeAll(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(&self, t: *const *mut crate::QRenderState) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_removeAll(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_removeAt(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_removeFirst(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_removeLast(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::removeOne(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QRenderState) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_removeOne(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::replace(int i, const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QRenderState) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_replace(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_reserve(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_resize(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_setSharable(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_size(
            self as *const crate::QVectorOfQRenderState,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_squeeze(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::startsWith(const Qt3DRender::QRenderState*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QRenderState) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_startsWith(
            self as *const crate::QVectorOfQRenderState,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::swap(QVector<Qt3DRender::QRenderState*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_swap(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQRenderState,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderState*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_swapItemsAt(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* QVector<Qt3DRender::QRenderState*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_takeAt(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* QVector<Qt3DRender::QRenderState*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_takeFirst(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* QVector<Qt3DRender::QRenderState*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_takeLast(
                self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* QVector<Qt3DRender::QRenderState*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::qt_core::QPtr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_value(
                self as *const crate::QVectorOfQRenderState,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* QVector<Qt3DRender::QRenderState*>::value(int i, const Qt3DRender::QRenderState*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QRenderState,
    ) -> ::qt_core::QPtr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_value1(
                self as *const crate::QVectorOfQRenderState,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQRenderTargetOutput {
    _unused: u8,
}
impl QVectorOfQRenderTargetOutput {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>& QVector<Qt3DRender::QRenderTargetOutput*>::operator+=(const QVector<Qt3DRender::QRenderTargetOutput*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_render_target_output(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator__4(self as *const crate::QVectorOfQRenderTargetOutput as *mut crate::QVectorOfQRenderTargetOutput, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(l).as_raw_ptr())
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>& QVector<Qt3DRender::QRenderTargetOutput*>::operator+=(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_render_target_output(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator__5(self as *const crate::QVectorOfQRenderTargetOutput as *mut crate::QVectorOfQRenderTargetOutput, t)
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::append(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_render_target_output(&self, t: *const *mut crate::QRenderTargetOutput) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_append(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::append(const QVector<Qt3DRender::QRenderTargetOutput*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_render_target_output(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_append2(self as *const crate::QVectorOfQRenderTargetOutput as *mut crate::QVectorOfQRenderTargetOutput, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(l).as_raw_ptr())
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_at(
            self as *const crate::QVectorOfQRenderTargetOutput,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_back(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_back1(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_capacity(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_clear(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput** QVector<Qt3DRender::QRenderTargetOutput*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_constData(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_constFirst(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_constLast(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::contains(const Qt3DRender::QRenderTargetOutput*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QRenderTargetOutput) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_contains(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>& QVector<Qt3DRender::QRenderTargetOutput*>::operator=(const QVector<Qt3DRender::QRenderTargetOutput*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator_(self as *const crate::QVectorOfQRenderTargetOutput as *mut crate::QVectorOfQRenderTargetOutput, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(v).as_raw_ptr())
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::count(const Qt3DRender::QRenderTargetOutput*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_count(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_count1(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput** QVector<Qt3DRender::QRenderTargetOutput*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_data(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput** QVector<Qt3DRender::QRenderTargetOutput*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_data1(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_detach(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_empty(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::endsWith(const Qt3DRender::QRenderTargetOutput*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QRenderTargetOutput) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_endsWith(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>& QVector<Qt3DRender::QRenderTargetOutput*>::fill(const Qt3DRender::QRenderTargetOutput*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_fill(
                self as *const crate::QVectorOfQRenderTargetOutput
                    as *mut crate::QVectorOfQRenderTargetOutput,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>& QVector<Qt3DRender::QRenderTargetOutput*>::fill(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_fill1(
                self as *const crate::QVectorOfQRenderTargetOutput
                    as *mut crate::QVectorOfQRenderTargetOutput,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_first(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_first1(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_front(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_front1(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &self,
        i: ::std::os::raw::c_int,
    ) -> *mut *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator__2(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator__3(
            self as *const crate::QVectorOfQRenderTargetOutput,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::indexOf(const Qt3DRender::QRenderTargetOutput*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_indexOf(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::indexOf(const Qt3DRender::QRenderTargetOutput*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_indexOf1(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::insert(int i, const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &self,
        i: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderTargetOutput,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_insert(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::insert(int i, int n, const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderTargetOutput,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_insert1(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_isDetached(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_isEmpty(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::isSharedWith(const QVector<Qt3DRender::QRenderTargetOutput*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_isSharedWith(self as *const crate::QVectorOfQRenderTargetOutput, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(other).as_raw_ptr())
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_last(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput*& QVector<Qt3DRender::QRenderTargetOutput*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_last1(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::lastIndexOf(const Qt3DRender::QRenderTargetOutput*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_lastIndexOf(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::lastIndexOf(const Qt3DRender::QRenderTargetOutput*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_length(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*> QVector<Qt3DRender::QRenderTargetOutput*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_mid(
                self as *const crate::QVectorOfQRenderTargetOutput,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*> QVector<Qt3DRender::QRenderTargetOutput*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_mid1(
                self as *const crate::QVectorOfQRenderTargetOutput,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_move(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_QVector()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_QVector1(
                size,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput*>::QVector(int size, const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_QVector2(
                size, t,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput*>::QVector(const QVector<Qt3DRender::QRenderTargetOutput*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_QVector3(::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(v).as_raw_ptr())
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_pop_back(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_pop_front(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::prepend(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QRenderTargetOutput) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_prepend(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::push_back(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QRenderTargetOutput) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_push_back(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::push_front(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QRenderTargetOutput) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_push_front(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_remove(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_remove1(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::removeAll(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &self,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_removeAll(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_removeAt(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_removeFirst(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_removeLast(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::removeOne(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QRenderTargetOutput) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_removeOne(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::replace(int i, const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &self,
        i: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderTargetOutput,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_replace(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_reserve(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_resize(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_setSharable(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_size(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_squeeze(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::startsWith(const Qt3DRender::QRenderTargetOutput*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QRenderTargetOutput) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_startsWith(
            self as *const crate::QVectorOfQRenderTargetOutput,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::swap(QVector<Qt3DRender::QRenderTargetOutput*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_swap(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(
                other,
            )
            .as_raw_ptr() as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_swapItemsAt(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* QVector<Qt3DRender::QRenderTargetOutput*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::qt_core::QPtr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_takeAt(
                self as *const crate::QVectorOfQRenderTargetOutput
                    as *mut crate::QVectorOfQRenderTargetOutput,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* QVector<Qt3DRender::QRenderTargetOutput*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_takeFirst(
                self as *const crate::QVectorOfQRenderTargetOutput
                    as *mut crate::QVectorOfQRenderTargetOutput,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* QVector<Qt3DRender::QRenderTargetOutput*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_takeLast(
                self as *const crate::QVectorOfQRenderTargetOutput
                    as *mut crate::QVectorOfQRenderTargetOutput,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* QVector<Qt3DRender::QRenderTargetOutput*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::qt_core::QPtr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_value(
                self as *const crate::QVectorOfQRenderTargetOutput,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* QVector<Qt3DRender::QRenderTargetOutput*>::value(int i, const Qt3DRender::QRenderTargetOutput*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QRenderTargetOutput,
    ) -> ::qt_core::QPtr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_value1(
                self as *const crate::QVectorOfQRenderTargetOutput,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfAttachmentPoint {
    _unused: u8,
}
impl QVectorOfAttachmentPoint {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator+=(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_attachment_point(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator__4(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(l).as_raw_ptr())
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator+=(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_attachment_point(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::cpp_core::Ref<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator__5(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::append(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_attachment_point(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_append(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::append(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_attachment_point(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_append2(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(l).as_raw_ptr())
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_at(
            self as *const crate::QVectorOfAttachmentPoint,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_back(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_back1(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_capacity(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_clear(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint* QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_constData(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_constFirst(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_constLast(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::contains(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_contains(self as *const crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator=(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator_(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(v).as_raw_ptr())
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::count(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_count(self as *const crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_count1(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint* QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_data(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint* QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_data1(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_detach(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_empty(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::endsWith(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_endsWith(self as *const crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::fill(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_fill(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t, size)
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::fill(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::cpp_core::Ref<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_fill1(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_first(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_first1(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_front(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_front1(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &self,
        i: ::std::os::raw::c_int,
    ) -> *mut crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator__2(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(
        &self,
        i: ::std::os::raw::c_int,
    ) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator__3(self as *const crate::QVectorOfAttachmentPoint, i)
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::indexOf(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_indexOf(self as *const crate::QVectorOfAttachmentPoint, t, from)
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::indexOf(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_indexOf1(self as *const crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::insert(int i, const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &self,
        i: ::std::os::raw::c_int,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_insert(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i, t)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::insert(int i, int n, const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_insert1(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i, n, t)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_isDetached(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_isEmpty(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::isSharedWith(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_isSharedWith(self as *const crate::QVectorOfAttachmentPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(other).as_raw_ptr())
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_last(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_last1(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::lastIndexOf(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_lastIndexOf(self as *const crate::QVectorOfAttachmentPoint, t, from)
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::lastIndexOf(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_lastIndexOf1(self as *const crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_length(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint> QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_mid(self as *const crate::QVectorOfAttachmentPoint, pos, len)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint> QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_mid1(self as *const crate::QVectorOfAttachmentPoint, pos)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_move(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, from, to)
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_QVector()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_QVector1(size)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::QVector(int size, const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_QVector2(size, t)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::QVector(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_QVector3(::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(v).as_raw_ptr())
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_pop_back(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_pop_front(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::prepend(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const crate::q_render_target_output::AttachmentPoint) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_prepend(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::push_back(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const crate::q_render_target_output::AttachmentPoint) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_push_back(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::push_front(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const crate::q_render_target_output::AttachmentPoint) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_push_front(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_remove(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_remove1(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i, n)
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::removeAll(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_removeAll(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_removeAt(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i)
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_removeFirst(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_removeLast(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::removeOne(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_removeOne(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::replace(int i, const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &self,
        i: ::std::os::raw::c_int,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_replace(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i, t)
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_reserve(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, size)
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_resize(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, size)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_setSharable(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, sharable)
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_shrink_to_fit(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_size(self as *const crate::QVectorOfAttachmentPoint)
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_squeeze(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::startsWith(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(
        &self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_startsWith(self as *const crate::QVectorOfAttachmentPoint, t)
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::swap(QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_swap(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(other).as_raw_ptr() as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_swapItemsAt(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i, j)
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_takeAt(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, i)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_takeFirst(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_takeLast(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_value(self as *const crate::QVectorOfAttachmentPoint, i)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::value(int i, const Qt3DRender::QRenderTargetOutput::AttachmentPoint& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const crate::q_render_target_output::AttachmentPoint,
    ) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_value1(self as *const crate::QVectorOfAttachmentPoint, i, default_value)
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfSortType {
    _unused: u8,
}
impl QVectorOfSortType {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>& QVector<Qt3DRender::QSortPolicy::SortType>::operator+=(const QVector<Qt3DRender::QSortPolicy::SortType>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_sort_type(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator__4(
                self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>& QVector<Qt3DRender::QSortPolicy::SortType>::operator+=(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_sort_type(
        &self,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::cpp_core::Ref<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator__5(
                self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::append(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_sort_type(&self, t: *const crate::q_sort_policy::SortType) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_append(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::append(const QVector<Qt3DRender::QSortPolicy::SortType>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_sort_type(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_append2(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_at(
            self as *const crate::QVectorOfSortType,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_back(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_back1(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_capacity(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_clear(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType* QVector<Qt3DRender::QSortPolicy::SortType>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_constData(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_constFirst(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_constLast(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::contains(const Qt3DRender::QSortPolicy::SortType& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const crate::q_sort_policy::SortType) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_contains(
            self as *const crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>& QVector<Qt3DRender::QSortPolicy::SortType>::operator=(const QVector<Qt3DRender::QSortPolicy::SortType>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator_(
                self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::count(const Qt3DRender::QSortPolicy::SortType& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(
        &self,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_count(
            self as *const crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_count1(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType* QVector<Qt3DRender::QSortPolicy::SortType>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_data(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType* QVector<Qt3DRender::QSortPolicy::SortType>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_data1(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_detach(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_empty(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::endsWith(const Qt3DRender::QSortPolicy::SortType& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const crate::q_sort_policy::SortType) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_endsWith(
            self as *const crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>& QVector<Qt3DRender::QSortPolicy::SortType>::fill(const Qt3DRender::QSortPolicy::SortType& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const crate::q_sort_policy::SortType,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_fill(
                self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>& QVector<Qt3DRender::QSortPolicy::SortType>::fill(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::cpp_core::Ref<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_fill1(
                self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_first(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_first1(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_front(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_front1(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(
        &self,
        i: ::std::os::raw::c_int,
    ) -> *mut crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator__2(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator__3(
            self as *const crate::QVectorOfSortType,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::indexOf(const Qt3DRender::QSortPolicy::SortType& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const crate::q_sort_policy::SortType,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_indexOf(
            self as *const crate::QVectorOfSortType,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::indexOf(const Qt3DRender::QSortPolicy::SortType& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(
        &self,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_indexOf1(
            self as *const crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::insert(int i, const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(
        &self,
        i: ::std::os::raw::c_int,
        t: *const crate::q_sort_policy::SortType,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_insert(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::insert(int i, int n, const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const crate::q_sort_policy::SortType,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_insert1(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_isDetached(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_isEmpty(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::isSharedWith(const QVector<Qt3DRender::QSortPolicy::SortType>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_isSharedWith(
            self as *const crate::QVectorOfSortType,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_last(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType& QVector<Qt3DRender::QSortPolicy::SortType>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_last1(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::lastIndexOf(const Qt3DRender::QSortPolicy::SortType& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const crate::q_sort_policy::SortType,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_lastIndexOf(
            self as *const crate::QVectorOfSortType,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::lastIndexOf(const Qt3DRender::QSortPolicy::SortType& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_lastIndexOf1(
            self as *const crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_length(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType> QVector<Qt3DRender::QSortPolicy::SortType>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_mid(
                self as *const crate::QVectorOfSortType,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType> QVector<Qt3DRender::QSortPolicy::SortType>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_mid1(
                self as *const crate::QVectorOfSortType,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_move(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QSortPolicy::SortType>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_QVector()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QSortPolicy::SortType>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_QVector1(
                size,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QSortPolicy::SortType>::QVector(int size, const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_QVector2(
                size, t,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QSortPolicy::SortType>::QVector(const QVector<Qt3DRender::QSortPolicy::SortType>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_pop_back(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_pop_front(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::prepend(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const crate::q_sort_policy::SortType) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_prepend(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::push_back(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const crate::q_sort_policy::SortType) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_push_back(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::push_front(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const crate::q_sort_policy::SortType) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_push_front(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_remove(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_remove1(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::removeAll(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(
        &self,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_removeAll(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_removeAt(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_removeFirst(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_removeLast(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::removeOne(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const crate::q_sort_policy::SortType) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_removeOne(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::replace(int i, const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(
        &self,
        i: ::std::os::raw::c_int,
        t: *const crate::q_sort_policy::SortType,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_replace(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_reserve(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_resize(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_setSharable(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_shrink_to_fit(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_size(
            self as *const crate::QVectorOfSortType,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_squeeze(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::startsWith(const Qt3DRender::QSortPolicy::SortType& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const crate::q_sort_policy::SortType) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_startsWith(
            self as *const crate::QVectorOfSortType,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::swap(QVector<Qt3DRender::QSortPolicy::SortType>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_swap(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QSortPolicy::SortType>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_swapItemsAt(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType QVector<Qt3DRender::QSortPolicy::SortType>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_takeAt(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
            i,
        )
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType QVector<Qt3DRender::QSortPolicy::SortType>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_takeFirst(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType QVector<Qt3DRender::QSortPolicy::SortType>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_takeLast(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType QVector<Qt3DRender::QSortPolicy::SortType>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_value(
            self as *const crate::QVectorOfSortType,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType QVector<Qt3DRender::QSortPolicy::SortType>::value(int i, const Qt3DRender::QSortPolicy::SortType& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const crate::q_sort_policy::SortType,
    ) -> crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_value1(
            self as *const crate::QVectorOfSortType,
            i,
            default_value,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQRenderPass {
    _unused: u8,
}
impl QVectorOfQRenderPass {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>& QVector<Qt3DRender::QRenderPass*>::operator+=(const QVector<Qt3DRender::QRenderPass*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_vector_of_q_render_pass(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator__4(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(l)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>& QVector<Qt3DRender::QRenderPass*>::operator+=(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    pub unsafe fn add_assign_q_render_pass(
        &self,
        t: *const *mut crate::QRenderPass,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator__5(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::append(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_render_pass(&self, t: *const *mut crate::QRenderPass) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_append(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::append(const QVector<Qt3DRender::QRenderPass*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn append_q_vector_of_q_render_pass(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_append2(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_at(
            self as *const crate::QVectorOfQRenderPass,
            i,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn back_mut(&self) -> *mut *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_back(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn back(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_back1(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_capacity(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_clear(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass** QVector<Qt3DRender::QRenderPass*>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_data(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_constData(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_first(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_constFirst(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn const_last(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_constLast(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::contains(const Qt3DRender::QRenderPass*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#contains">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector contains an occurrence of <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p></div>
    #[inline(always)]
    pub unsafe fn contains(&self, t: *const *mut crate::QRenderPass) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_contains(
            self as *const crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>& QVector<Qt3DRender::QRenderPass*>::operator=(const QVector<Qt3DRender::QRenderPass*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator_(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::count(const Qt3DRender::QRenderPass*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of occurrences of <i>value</i> in the vector.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_1a(&self, t: *const *mut crate::QRenderPass) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_count(
            self as *const crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn count_0a(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_count1(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass** QVector<Qt3DRender::QRenderPass*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn data_mut(&self) -> *mut *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_data(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass** QVector<Qt3DRender::QRenderPass*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn data(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_data1(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::detach()```</span>.
    #[inline(always)]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_detach(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_empty(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::endsWith(const Qt3DRender::QRenderPass*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#endsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its last item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    pub unsafe fn ends_with(&self, t: *const *mut crate::QRenderPass) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_endsWith(
            self as *const crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>& QVector<Qt3DRender::QRenderPass*>::fill(const Qt3DRender::QRenderPass*& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_2a(
        &self,
        t: *const *mut crate::QRenderPass,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_fill(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                t,
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>& QVector<Qt3DRender::QRenderPass*>::fill(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn fill_1a(
        &self,
        t: *const *mut crate::QRenderPass,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_fill1(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                t,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn first_mut(&self) -> *mut *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_first(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn first(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_first1(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn front_mut(&self) -> *mut *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_front(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn front(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_front1(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_mut(&self, i: ::std::os::raw::c_int) -> *mut *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator__2(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator__3(
            self as *const crate::QVectorOfQRenderPass,
            i,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::indexOf(const Qt3DRender::QRenderPass*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_2a(
        &self,
        t: *const *mut crate::QRenderPass,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_indexOf(
            self as *const crate::QVectorOfQRenderPass,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::indexOf(const Qt3DRender::QRenderPass*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the first occurrence of <i>value</i> in the vector, searching forward from index position <i>from</i>. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span>);            <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">1</span>);         <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);         <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>indexOf(<span class="string">"X"</span>);            <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>().</p></div>
    #[inline(always)]
    pub unsafe fn index_of_1a(&self, t: *const *mut crate::QRenderPass) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_indexOf1(
            self as *const crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::insert(int i, const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn insert_2a(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QRenderPass) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_insert(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::insert(int i, int n, const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderPass,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_insert1(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
            n,
            t,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::isDetached() const```</span>.
    #[inline(always)]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_isDetached(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_isEmpty(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::isSharedWith(const QVector<Qt3DRender::QRenderPass*>& other) const```</span>.
    #[inline(always)]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_isSharedWith(
            self as *const crate::QVectorOfQRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(other)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_mut(&self) -> *mut *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_last(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass*& QVector<Qt3DRender::QRenderPass*>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    pub unsafe fn last(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_last1(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::lastIndexOf(const Qt3DRender::QRenderPass*& t, int from = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_2a(
        &self,
        t: *const *mut crate::QRenderPass,
        from: ::std::os::raw::c_int,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_lastIndexOf(
            self as *const crate::QVectorOfQRenderPass,
            t,
            from,
        )
    }

    /// <p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::lastIndexOf(const Qt3DRender::QRenderPass*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index position of the last occurrence of the value <i>value</i> in the vector, searching backward from index position <i>from</i>. If <i>from</i> is -1 (the default), the search starts at the last item. Returns -1 if no item matched.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qlist.html">QList</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"C"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"B"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"A"</span>;
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span>);        <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">3</span>);     <span class="comment">// returns 3</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"B"</span><span class="operator">,</span> <span class="number">2</span>);     <span class="comment">// returns 1</span>
    ///   vector<span class="operator">.</span>lastIndexOf(<span class="string">"X"</span>);        <span class="comment">// returns -1</span>
    ///
    /// </pre>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>().</p></div>
    #[inline(always)]
    pub unsafe fn last_index_of_1a(
        &self,
        t: *const *mut crate::QRenderPass,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_lastIndexOf1(
            self as *const crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_length(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*> QVector<Qt3DRender::QRenderPass*>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_mid(
                self as *const crate::QVectorOfQRenderPass,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*> QVector<Qt3DRender::QRenderPass*>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_mid1(
                self as *const crate::QVectorOfQRenderPass,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_move(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderPass*>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderPass*>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_QVector1(size)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderPass*>::QVector(int size, const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: *const *mut crate::QRenderPass,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_QVector2(size, t)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRenderPass*>::QVector(const QVector<Qt3DRender::QRenderPass*>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(v)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_pop_back(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_pop_front(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::prepend(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    pub unsafe fn prepend(&self, t: *const *mut crate::QRenderPass) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_prepend(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::push_back(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_back(&self, t: *const *mut crate::QRenderPass) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_push_back(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::push_front(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    pub unsafe fn push_front(&self, t: *const *mut crate::QRenderPass) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_push_front(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_remove(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_remove1(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
            n,
        )
    }

    /// <p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::removeAll(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAll">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all elements that compare equal to <i>t</i> from the vector. Returns the number of elements removed, if any.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeOne">removeOne</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAll">QList::removeAll</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_all(&self, t: *const *mut crate::QRenderPass) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_removeAll(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_removeAt(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_removeFirst(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_removeLast(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::removeOne(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeOne">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first element that compares equal to <i>t</i> from the vector. Returns whether an element was, in fact, removed.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.4.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#removeAll">removeAll</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeOne">QList::removeOne</a>().</p></div>
    #[inline(always)]
    pub unsafe fn remove_one(&self, t: *const *mut crate::QRenderPass) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_removeOne(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::replace(int i, const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    pub unsafe fn replace(&self, i: ::std::os::raw::c_int, t: *const *mut crate::QRenderPass) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_replace(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
            t,
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_reserve(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_resize(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_setSharable(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_shrink_to_fit(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_size(
            self as *const crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_squeeze(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::startsWith(const Qt3DRender::QRenderPass*& t) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#startsWith">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if this vector is not empty and its first item is equal to <i>value</i>; otherwise returns <code>false</code>.</p>
    /// <p>This function was introduced in  Qt 4.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    pub unsafe fn starts_with(&self, t: *const *mut crate::QRenderPass) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_startsWith(
            self as *const crate::QVectorOfQRenderPass,
            t,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::swap(QVector<Qt3DRender::QRenderPass*>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_swap(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQRenderPass,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRenderPass*>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_swapItemsAt(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* QVector<Qt3DRender::QRenderPass*>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_at(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_takeAt(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* QVector<Qt3DRender::QRenderPass*>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_first(&self) -> ::qt_core::QPtr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_takeFirst(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* QVector<Qt3DRender::QRenderPass*>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    pub unsafe fn take_last(&self) -> ::qt_core::QPtr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_takeLast(
                self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* QVector<Qt3DRender::QRenderPass*>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    pub unsafe fn value_1a(&self, i: ::std::os::raw::c_int) -> ::qt_core::QPtr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_value(
                self as *const crate::QVectorOfQRenderPass,
                i,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* QVector<Qt3DRender::QRenderPass*>::value(int i, const Qt3DRender::QRenderPass*& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: *const *mut crate::QRenderPass,
    ) -> ::qt_core::QPtr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_value1(
                self as *const crate::QVectorOfQRenderPass,
                i,
                default_value,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }
}

pub mod q_ray_caster_hit {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QRayCasterHit```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QRayCasterHit::HitType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct HitType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for HitType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            HitType(value)
        }
    }

    impl From<HitType> for ::std::os::raw::c_int {
        fn from(value: HitType) -> Self {
            value.0
        }
    }

    impl HitType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl HitType {
        /// C++ enum variant: <span style='color: green;'>```TriangleHit = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const TriangleHit: crate::q_ray_caster_hit::HitType =
            crate::q_ray_caster_hit::HitType(0);
        /// C++ enum variant: <span style='color: green;'>```LineHit = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const LineHit: crate::q_ray_caster_hit::HitType = crate::q_ray_caster_hit::HitType(1);
        /// C++ enum variant: <span style='color: green;'>```PointHit = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const PointHit: crate::q_ray_caster_hit::HitType = crate::q_ray_caster_hit::HitType(2);
        /// C++ enum variant: <span style='color: green;'>```EntityHit = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const EntityHit: crate::q_ray_caster_hit::HitType = crate::q_ray_caster_hit::HitType(3);
    }
}
/// <p>Details of a hit when casting a ray through a model.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRayCasterHit```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Details of a hit when casting a ray through a model.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html">Qt3DRender::QRayCasterHit</a> contains the details of a successful hit when casting a ray through a model using a <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html">Qt3DRender::QRayCaster</a> or <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html">Qt3DRender::QScreenRayCaster</a> component.</p></div>
#[repr(C)]
pub struct QRayCasterHit {
    _unused: u8,
}
impl QRayCasterHit {
    /// <p>Copy-assignment operator.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit& Qt3DRender::QRayCasterHit::operator=(const Qt3DRender::QRayCasterHit& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Copy-assignment operator.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn copy_from(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_operator_(
                self as *const crate::QRayCasterHit as *mut crate::QRayCasterHit,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(other)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns the distance between the origin of the ray and the intersection point</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QRayCasterHit::distance() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#distance">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the distance between the origin of the ray and the intersection point</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn distance(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_distance(
            self as *const crate::QRayCasterHit,
        )
    }

    /// <p>Returns a pointer to the entity that was hit</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QEntity* Qt3DRender::QRayCasterHit::entity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#entity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the entity that was hit</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn entity(&self) -> ::qt_core::QPtr<::qt_3d_core::QEntity> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_entity(
                self as *const crate::QRayCasterHit,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p>Returns the id of the entity that was hit</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNodeId Qt3DRender::QRayCasterHit::entityId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#entityId">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the id of the entity that was hit</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn entity_id(&self) -> ::cpp_core::CppBox<::qt_3d_core::QNodeId> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_entityId(
                self as *const crate::QRayCasterHit,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the coordinates of the intersection point in the entity's coordinate system</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QRayCasterHit::localIntersection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#localIntersection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the coordinates of the intersection point in the entity's coordinate system</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn local_intersection(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_localIntersection(
                self as *const crate::QRayCasterHit,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Default constructs an instance of QRayCasterHit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRayCasterHit::QRayCasterHit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#QRayCasterHit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRayCasterHit.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_QRayCasterHit() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Default constructs an instance of QRayCasterHit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRayCasterHit::QRayCasterHit(Qt3DRender::QRayCasterHit::HitType type, Qt3DCore::QNodeId id, float distance, const QVector3D& localIntersect, const QVector3D& worldIntersect, unsigned int primitiveIndex, unsigned int v1, unsigned int v2, unsigned int v3)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#QRayCasterHit-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRayCasterHit.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_9a(
        type_: crate::q_ray_caster_hit::HitType,
        id: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_3d_core::QNodeId>>,
        distance: ::std::os::raw::c_float,
        local_intersect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        world_intersect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        primitive_index: ::std::os::raw::c_uint,
        v1: ::std::os::raw::c_uint,
        v2: ::std::os::raw::c_uint,
        v3: ::std::os::raw::c_uint,
    ) -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_QRayCasterHit1(
                type_,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_3d_core::QNodeId>>::cast_into(id)
                    .as_raw_ptr(),
                distance,
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    local_intersect,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    world_intersect,
                )
                .as_raw_ptr(),
                primitive_index,
                v1,
                v2,
                v3,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Default constructs an instance of QRayCasterHit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRayCasterHit::QRayCasterHit(const Qt3DRender::QRayCasterHit& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#QRayCasterHit-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRayCasterHit.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_QRayCasterHit2(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(other)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the index of the picked primitive</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QRayCasterHit::primitiveIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#primitiveIndex">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the picked primitive</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn primitive_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_primitiveIndex(
            self as *const crate::QRayCasterHit,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Returns the type of the hit</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit::HitType Qt3DRender::QRayCasterHit::type() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#type">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the type of the hit</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn type_(&self) -> crate::q_ray_caster_hit::HitType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_type(
            self as *const crate::QRayCasterHit,
        )
    }

    /// <p>Returns the index of the first vertex of the picked primitive</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QRayCasterHit::vertex1Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#vertex1Index">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the first vertex of the picked primitive</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex1_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_vertex1Index(
            self as *const crate::QRayCasterHit,
        )
    }

    /// <p>Returns the index of the second vertex of the picked primitive</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QRayCasterHit::vertex2Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#vertex2Index">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the second vertex of the picked primitive</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex2_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_vertex2Index(
            self as *const crate::QRayCasterHit,
        )
    }

    /// <p>Returns the index of the third vertex of the picked primitive</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QRayCasterHit::vertex3Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#vertex3Index">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the index of the third vertex of the picked primitive</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex3_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_vertex3Index(
            self as *const crate::QRayCasterHit,
        )
    }

    /// <p>Returns the coordinates of the intersection point in the model's coordinate system</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QRayCasterHit::worldIntersection() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#worldIntersection">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the coordinates of the intersection point in the model's coordinate system</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn world_intersection(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_worldIntersection(
                self as *const crate::QRayCasterHit,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_abstract_ray_caster {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster::RunMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RunMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RunMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RunMode(value)
        }
    }

    impl From<RunMode> for ::std::os::raw::c_int {
        fn from(value: RunMode) -> Self {
            value.0
        }
    }

    impl RunMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RunMode {
        /// C++ enum variant: <span style='color: green;'>```Continuous = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Continuous: crate::q_abstract_ray_caster::RunMode =
            crate::q_abstract_ray_caster::RunMode(0);
        /// C++ enum variant: <span style='color: green;'>```SingleShot = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const SingleShot: crate::q_abstract_ray_caster::RunMode =
            crate::q_abstract_ray_caster::RunMode(1);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster::FilterMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FilterMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FilterMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FilterMode(value)
        }
    }

    impl From<FilterMode> for ::std::os::raw::c_int {
        fn from(value: FilterMode) -> Self {
            value.0
        }
    }

    impl FilterMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FilterMode {
        /// C++ enum variant: <span style='color: green;'>```AcceptAnyMatchingLayers = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const AcceptAnyMatchingLayers: crate::q_abstract_ray_caster::FilterMode =
            crate::q_abstract_ray_caster::FilterMode(0);
        /// C++ enum variant: <span style='color: green;'>```AcceptAllMatchingLayers = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const AcceptAllMatchingLayers: crate::q_abstract_ray_caster::FilterMode =
            crate::q_abstract_ray_caster::FilterMode(1);
        /// C++ enum variant: <span style='color: green;'>```DiscardAnyMatchingLayers = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const DiscardAnyMatchingLayers: crate::q_abstract_ray_caster::FilterMode =
            crate::q_abstract_ray_caster::FilterMode(2);
        /// C++ enum variant: <span style='color: green;'>```DiscardAllMatchingLayers = 3```</span>
        #[allow(non_upper_case_globals)]
        pub const DiscardAllMatchingLayers: crate::q_abstract_ray_caster::FilterMode =
            crate::q_abstract_ray_caster::FilterMode(3);
    }
}
/// <p>An abstract base class for ray casting in 3d scenes.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>An abstract base class for ray casting in 3d scenes.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">Qt3DRender::QAbstractRayCaster</a> is an abstract base class for casting rays into a 3d scene. <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">Qt3DRender::QAbstractRayCaster</a> can not be directly instantiated, but rather through its subclasses. <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">QAbstractRayCaster</a> specifies common properties for all ray casters, such as run mode and layer handling, while leaving the actual ray casting details to the subclasses.</p>
/// <p>Ray castings differs from picking (using <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">Qt3DRender::QObjectPicker</a>) in that it does not require mouse events to trigger.</p>
/// <p>By default, the instances of <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">Qt3DRender::QAbstractRayCaster</a> are disabled. When enabled, the specified ray will be tested for intersecting objects at every frame. The <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#hits-prop">QAbstractRayCaster::hits</a> property will be updated with the results of the ray casting, even if no objects are found.</p>
/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">Qt3DRender::QPickingSettings</a> can be used to control the ray casting, such as which primitives are tested and how the results are returned.</p>
/// <p>Furthermore, <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> components can be used to control how entities, or entity sub-graphs, react to ray casting.</p>
/// <p><b>Note: </b>Components derived from <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">QAbstractRayCaster</a> should not be shared amount multiple entities.</p></div>
#[repr(C)]
pub struct QAbstractRayCaster {
    _unused: u8,
}
impl QAbstractRayCaster {
    /// <p>Holds the run mode controlling how often ray casting tests are performed.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractRayCaster::setRunMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#runMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the run mode controlling how often ray casting tests are performed.</p>
    /// <p>If set to <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#RunMode-enum">SingleShot</a> (the default), when the component is enabled, a single ray casting test will be performed and the component will automatically disable itself.</p>
    /// <p>If set to Continuous, ray casting tests will be performed at every frame as long as the component is enabled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::RunMode </td><td class="memItemRight bottomAlign"><span class="name"><b>runMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRunMode</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>runModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_run_mode(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_abstract_ray_caster::RunMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setRunMode(Qt3DRender::QAbstractRayCaster::RunMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QAbstractRayCaster::setFilterMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#filterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    /// <p>The default value is AcceptMatchingLayers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::FilterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>filterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFilterMode</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>filterModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_filter_mode(
        &self,
    ) -> ::qt_core::Receiver<(crate::q_abstract_ray_caster::FilterMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the run mode controlling how often ray casting tests are performed.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractRayCaster::runModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#runMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the run mode controlling how often ray casting tests are performed.</p>
    /// <p>If set to <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#RunMode-enum">SingleShot</a> (the default), when the component is enabled, a single ray casting test will be performed and the component will automatically disable itself.</p>
    /// <p>If set to Continuous, ray casting tests will be performed at every frame as long as the component is enabled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::RunMode </td><td class="memItemRight bottomAlign"><span class="name"><b>runMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRunMode</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>runModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn run_mode_changed(&self) -> ::qt_core::Signal<(crate::q_abstract_ray_caster::RunMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractRayCaster::filterModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#filterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    /// <p>The default value is AcceptMatchingLayers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::FilterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>filterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFilterMode</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>filterModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn filter_mode_changed(
        &self,
    ) -> ::qt_core::Signal<(crate::q_abstract_ray_caster::FilterMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the results of last ray casting test as a vector of <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html">Qt3DRender::QRayCasterHit</a> instances.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QAbstractRayCaster::hitsChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#hits-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the results of last ray casting test as a vector of <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html">Qt3DRender::QRayCasterHit</a> instances.</p>
    /// <p>Note that even if successive tests return the exact same results (or empty results), a change notification will be emitted at every test.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::Hits </td><td class="memItemRight bottomAlign"><span class="name"><b>hits</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>hitsChanged</b></span>(const Qt3DRender::QAbstractRayCaster::Hits &amp;<i>hits</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn hits_changed(&self) -> ::qt_core::Signal<(*const crate::QVectorOfQRayCasterHit,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2hitsChanged(QVector< Qt3DRender::QRayCasterHit > const &)\0",
                ),
            )
        }
    }

    /// <p>Add <i>layer</i> to the current list of layers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractRayCaster::addLayer(Qt3DRender::QLayer* layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#addLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Add <i>layer</i> to the current list of layers</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn add_layer(
        &self,
        layer: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QLayer>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_addLayer(
            self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QLayer>>::cast_into(layer).as_raw_ptr()
                as *mut crate::QLayer,
        )
    }

    /// <p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster::FilterMode Qt3DRender::QAbstractRayCaster::filterMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#filterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    /// <p>The default value is AcceptMatchingLayers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::FilterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>filterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFilterMode</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>filterModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn filter_mode(&self) -> crate::q_abstract_ray_caster::FilterMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_filterMode(
            self as *const crate::QAbstractRayCaster,
        )
    }

    /// <p>Holds the results of last ray casting test as a vector of <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html">Qt3DRender::QRayCasterHit</a> instances.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit> Qt3DRender::QAbstractRayCaster::hits() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#hits-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the results of last ray casting test as a vector of <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html">Qt3DRender::QRayCasterHit</a> instances.</p>
    /// <p>Note that even if successive tests return the exact same results (or empty results), a change notification will be emitted at every test.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::Hits </td><td class="memItemRight bottomAlign"><span class="name"><b>hits</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>hitsChanged</b></span>(const Qt3DRender::QAbstractRayCaster::Hits &amp;<i>hits</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn hits(&self) -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_hits(
                self as *const crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the current list of layers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*> Qt3DRender::QAbstractRayCaster::layers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#layers">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the current list of layers</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn layers(&self) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_layers(
                self as *const crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QAbstractRayCaster::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_metaObject(
                self as *const crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QAbstractRayCaster.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAbstractRayCaster::QAbstractRayCaster(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#QAbstractRayCaster">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QAbstractRayCaster.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_QAbstractRayCaster(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>An abstract base class for ray casting in 3d scenes.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QAbstractRayCaster::QAbstractRayCaster()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>An abstract base class for ray casting in 3d scenes.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">Qt3DRender::QAbstractRayCaster</a> is an abstract base class for casting rays into a 3d scene. <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">Qt3DRender::QAbstractRayCaster</a> can not be directly instantiated, but rather through its subclasses. <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">QAbstractRayCaster</a> specifies common properties for all ray casters, such as run mode and layer handling, while leaving the actual ray casting details to the subclasses.</p>
    /// <p>Ray castings differs from picking (using <a href="http://doc.qt.io/qt-5/qt3drender-qobjectpicker.html">Qt3DRender::QObjectPicker</a>) in that it does not require mouse events to trigger.</p>
    /// <p>By default, the instances of <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">Qt3DRender::QAbstractRayCaster</a> are disabled. When enabled, the specified ray will be tested for intersecting objects at every frame. The <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#hits-prop">QAbstractRayCaster::hits</a> property will be updated with the results of the ray casting, even if no objects are found.</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickingsettings.html">Qt3DRender::QPickingSettings</a> can be used to control the ray casting, such as which primitives are tested and how the results are returned.</p>
    /// <p>Furthermore, <a href="http://doc.qt.io/qt-5/qt3drender-qlayer.html">Qt3DRender::QLayer</a> components can be used to control how entities, or entity sub-graphs, react to ray casting.</p>
    /// <p><b>Note: </b>Components derived from <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html">QAbstractRayCaster</a> should not be shared amount multiple entities.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_QAbstractRayCaster1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QAbstractRayCaster::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_qt_metacall(
            self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QAbstractRayCaster::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_qt_metacast(
            self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
            arg1,
        )
    }

    /// <p>Remove <i>layer</i> from the current list of layers</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QAbstractRayCaster::removeLayer(Qt3DRender::QLayer* layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#removeLayer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Remove <i>layer</i> from the current list of layers</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn remove_layer(
        &self,
        layer: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QLayer>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_removeLayer(
            self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QLayer>>::cast_into(layer).as_raw_ptr()
                as *mut crate::QLayer,
        )
    }

    /// <p>Holds the run mode controlling how often ray casting tests are performed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster::RunMode Qt3DRender::QAbstractRayCaster::runMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#runMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the run mode controlling how often ray casting tests are performed.</p>
    /// <p>If set to <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#RunMode-enum">SingleShot</a> (the default), when the component is enabled, a single ray casting test will be performed and the component will automatically disable itself.</p>
    /// <p>If set to Continuous, ray casting tests will be performed at every frame as long as the component is enabled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::RunMode </td><td class="memItemRight bottomAlign"><span class="name"><b>runMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRunMode</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>runModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn run_mode(&self) -> crate::q_abstract_ray_caster::RunMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_runMode(
            self as *const crate::QAbstractRayCaster,
        )
    }

    /// <p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractRayCaster::setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#filterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the filter mode specifying the entities to select for ray casting tests.</p>
    /// <p>The default value is AcceptMatchingLayers.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::FilterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>filterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFilterMode</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>filterModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::FilterMode <i>filterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_filter_mode(&self, filter_mode: crate::q_abstract_ray_caster::FilterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_setFilterMode(
            self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
            filter_mode,
        )
    }

    /// <p>Holds the run mode controlling how often ray casting tests are performed.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QAbstractRayCaster::setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#runMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the run mode controlling how often ray casting tests are performed.</p>
    /// <p>If set to <a href="http://doc.qt.io/qt-5/qt3drender-qabstractraycaster.html#RunMode-enum">SingleShot</a> (the default), when the component is enabled, a single ray casting test will be performed and the component will automatically disable itself.</p>
    /// <p>If set to Continuous, ray casting tests will be performed at every frame as long as the component is enabled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QAbstractRayCaster::RunMode </td><td class="memItemRight bottomAlign"><span class="name"><b>runMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRunMode</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>runModeChanged</b></span>(Qt3DRender::QAbstractRayCaster::RunMode <i>runMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_run_mode(&self, run_mode: crate::q_abstract_ray_caster::RunMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_setRunMode(
            self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
            run_mode,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractRayCaster::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QAbstractRayCaster::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_blit_framebuffer {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer::InterpolationMethod```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct InterpolationMethod(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for InterpolationMethod {
        fn from(value: ::std::os::raw::c_int) -> Self {
            InterpolationMethod(value)
        }
    }

    impl From<InterpolationMethod> for ::std::os::raw::c_int {
        fn from(value: InterpolationMethod) -> Self {
            value.0
        }
    }

    impl InterpolationMethod {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl InterpolationMethod {
        /// C++ enum variant: <span style='color: green;'>```Nearest = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Nearest: crate::q_blit_framebuffer::InterpolationMethod =
            crate::q_blit_framebuffer::InterpolationMethod(0);
        /// C++ enum variant: <span style='color: green;'>```Linear = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Linear: crate::q_blit_framebuffer::InterpolationMethod =
            crate::q_blit_framebuffer::InterpolationMethod(1);
    }
}
/// <p>FrameGraph node to transfer a rectangle of pixel values from one region of a render target to another.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>FrameGraph node to transfer a rectangle of pixel values from one region of a render target to another.</p>
/// <p>This node inserts a <code>glBlitFrameBuffer</code> or an equivalent into the command stream. This provides a more efficient method for copying rectangles between textures or surface backbuffers wrapped by <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> than drawing textured quads. It also supports scaling with the specified interpolation method.</p>
/// <p><b>Note: </b>In practice the <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">QBlitFramebuffer</a> node will often be used in combination with <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">QNoDraw</a> since a blit should not involve issuing draw calls for any entities.</p></div>
#[repr(C)]
pub struct QBlitFramebuffer {
    _unused: u8,
}
impl QBlitFramebuffer {
    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlitFramebuffer::sourceChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#source">source</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSource">setSource</a></b></span>(Qt3DRender::QRenderTarget *<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn source_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2sourceChanged()\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlitFramebuffer::destinationChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destination-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destination">destination</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestination">setDestination</a></b></span>(Qt3DRender::QRenderTarget *<i>destination</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn destination_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2destinationChanged()\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlitFramebuffer::sourceRectChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceRect">sourceRect</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSourceRect">setSourceRect</a></b></span>(const QRectF &amp;<i>inputRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRectChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn source_rect_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2sourceRectChanged()\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlitFramebuffer::destinationRectChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationRect">destinationRect</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestinationRect">setDestinationRect</a></b></span>(const QRectF &amp;<i>outputRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRectChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn destination_rect_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2destinationRectChanged()\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlitFramebuffer::sourceAttachmentPointChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceAttachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTargetOutput::AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceAttachmentPoint">sourceAttachmentPoint</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSourceAttachmentPoint">setSourceAttachmentPoint</a></b></span>(Qt3DRender::QRenderTargetOutput::AttachmentPoint <i>sourceAttachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAttachmentPointChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn source_attachment_point_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2sourceAttachmentPointChanged()\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlitFramebuffer::destinationAttachmentPointChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationAttachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTargetOutput::AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationAttachmentPoint">destinationAttachmentPoint</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestinationAttachmentPoint">setDestinationAttachmentPoint</a></b></span>(Qt3DRender::QRenderTargetOutput::AttachmentPoint <i>destinationAttachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAttachmentPointChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn destination_attachment_point_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2destinationAttachmentPointChanged()\0",
                ),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QBlitFramebuffer::interpolationMethodChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#interpolationMethod-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QBlitFramebuffer::InterpolationMethod </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#interpolationMethod">interpolationMethod</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setInterpolationMethod">setInterpolationMethod</a></b></span>(Qt3DRender::QBlitFramebuffer::InterpolationMethod <i>interpolationMethod</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>interpolationMethodChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn interpolation_method_changed(&self) -> ::qt_core::Signal<()> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2interpolationMethodChanged()\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* Qt3DRender::QBlitFramebuffer::destination() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destination-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destination">destination</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestination">setDestination</a></b></span>(Qt3DRender::QRenderTarget *<i>destination</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn destination(&self) -> ::qt_core::QPtr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_destination(
                self as *const crate::QBlitFramebuffer,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint Qt3DRender::QBlitFramebuffer::destinationAttachmentPoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationAttachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTargetOutput::AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationAttachmentPoint">destinationAttachmentPoint</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestinationAttachmentPoint">setDestinationAttachmentPoint</a></b></span>(Qt3DRender::QRenderTargetOutput::AttachmentPoint <i>destinationAttachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationAttachmentPointChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn destination_attachment_point(
        &self,
    ) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_destinationAttachmentPoint(
            self as *const crate::QBlitFramebuffer,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF Qt3DRender::QBlitFramebuffer::destinationRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationRect">destinationRect</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestinationRect">setDestinationRect</a></b></span>(const QRectF &amp;<i>outputRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>destinationRectChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn destination_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_destinationRect(
                self as *const crate::QBlitFramebuffer,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer::InterpolationMethod Qt3DRender::QBlitFramebuffer::interpolationMethod() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#interpolationMethod-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QBlitFramebuffer::InterpolationMethod </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#interpolationMethod">interpolationMethod</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setInterpolationMethod">setInterpolationMethod</a></b></span>(Qt3DRender::QBlitFramebuffer::InterpolationMethod <i>interpolationMethod</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>interpolationMethodChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn interpolation_method(&self) -> crate::q_blit_framebuffer::InterpolationMethod {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_interpolationMethod(
            self as *const crate::QBlitFramebuffer,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QBlitFramebuffer::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_metaObject(
                self as *const crate::QBlitFramebuffer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">QBlitFramebuffer</a> with the given <i>parent</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBlitFramebuffer::QBlitFramebuffer(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#QBlitFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">QBlitFramebuffer</a> with the given <i>parent</i>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QBlitFramebuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_QBlitFramebuffer(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>FrameGraph node to transfer a rectangle of pixel values from one region of a render target to another.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QBlitFramebuffer::QBlitFramebuffer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>FrameGraph node to transfer a rectangle of pixel values from one region of a render target to another.</p>
    /// <p>This node inserts a <code>glBlitFrameBuffer</code> or an equivalent into the command stream. This provides a more efficient method for copying rectangles between textures or surface backbuffers wrapped by <a href="http://doc.qt.io/qt-5/qt3drender-qrendertarget.html">QRenderTarget</a> than drawing textured quads. It also supports scaling with the specified interpolation method.</p>
    /// <p><b>Note: </b>In practice the <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">QBlitFramebuffer</a> node will often be used in combination with <a href="http://doc.qt.io/qt-5/qt3drender-qnodraw.html">QNoDraw</a> since a blit should not involve issuing draw calls for any entities.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QBlitFramebuffer> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_QBlitFramebuffer1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QBlitFramebuffer::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_qt_metacall(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QBlitFramebuffer::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_qt_metacast(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            arg1,
        )
    }

    /// <p>Sets the destination render target. The default value is nullptr, in which case the destination is assumed to be be the default framebuffer (i.e. the backbuffer of the current surface), if there is one.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBlitFramebuffer::setDestination(Qt3DRender::QRenderTarget* destination)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestination">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the destination render target. The default value is nullptr, in which case the destination is assumed to be be the default framebuffer (i.e. the backbuffer of the current surface), if there is one.</p>
    /// <p><b>Note: </b>the source and destination must not refer to the same render target.</p><p><b>Note: </b>As with other nodes, <i>destination</i> gets automatically parented to the <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">QBlitFramebuffer</a> instance when no parent has been set. The lifetime is also tracked, meaning the destination reverts to nullptr in case the currently set <i>destination</i> is destroyed.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destination-prop">destination</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destination">destination</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_destination(
        &self,
        destination: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTarget>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_setDestination(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTarget>>::cast_into(destination)
                .as_raw_ptr() as *mut crate::QRenderTarget,
        )
    }

    /// <p>Sets the <i>destinationAttachmentPoint</i>. Defaults to Qt3DRender::QRenderTargetOutput::AttachmentPoint::Color0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBlitFramebuffer::setDestinationAttachmentPoint(Qt3DRender::QRenderTargetOutput::AttachmentPoint destinationAttachmentPoint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestinationAttachmentPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>destinationAttachmentPoint</i>. Defaults to Qt3DRender::QRenderTargetOutput::AttachmentPoint::Color0.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationAttachmentPoint-prop">destinationAttachmentPoint</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationAttachmentPoint">destinationAttachmentPoint</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_destination_attachment_point(
        &self,
        destination_attachment_point: crate::q_render_target_output::AttachmentPoint,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_setDestinationAttachmentPoint(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            destination_attachment_point,
        )
    }

    /// <p>Sets the destination rectangle to <i>outputRect</i>. The coordinates are assumed to follow the normal Qt coordinate system, meaning Y runs from top to bottom.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBlitFramebuffer::setDestinationRect(const QRectF& destinationRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setDestinationRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the destination rectangle to <i>outputRect</i>. The coordinates are assumed to follow the normal Qt coordinate system, meaning Y runs from top to bottom.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationRect-prop">destinationRect</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#destinationRect">destinationRect</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_destination_rect(
        &self,
        destination_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_setDestinationRect(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(destination_rect)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the <i>interpolationMethod</i> that is applied if the image is stretched. Defaults to Linear.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBlitFramebuffer::setInterpolationMethod(Qt3DRender::QBlitFramebuffer::InterpolationMethod interpolationMethod)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setInterpolationMethod">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>interpolationMethod</i> that is applied if the image is stretched. Defaults to Linear.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#interpolationMethod-prop">interpolationMethod</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#interpolationMethod">interpolationMethod</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_interpolation_method(
        &self,
        interpolation_method: crate::q_blit_framebuffer::InterpolationMethod,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_setInterpolationMethod(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            interpolation_method,
        )
    }

    /// <p>Sets the source render target. The default value is nullptr, in which case the source is assumed to be be the default framebuffer (i.e. the backbuffer of the current surface), if there is one.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBlitFramebuffer::setSource(Qt3DRender::QRenderTarget* source)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSource">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the source render target. The default value is nullptr, in which case the source is assumed to be be the default framebuffer (i.e. the backbuffer of the current surface), if there is one.</p>
    /// <p><b>Note: </b>the source and destination must not refer to the same render target.</p><p><b>Note: </b>As with other nodes, <i>source</i> gets automatically parented to the <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html">QBlitFramebuffer</a> instance when no parent has been set. The lifetime is also tracked, meaning the source reverts to nullptr in case the currently set <i>source</i> is destroyed.</p><p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#source-prop">source</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#source">source</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_source(
        &self,
        source: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTarget>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_setSource(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTarget>>::cast_into(source)
                .as_raw_ptr() as *mut crate::QRenderTarget,
        )
    }

    /// <p>Sets the <i>sourceAttachmentPoint</i>. Defaults to Qt3DRender::QRenderTargetOutput::AttachmentPoint::Color0.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBlitFramebuffer::setSourceAttachmentPoint(Qt3DRender::QRenderTargetOutput::AttachmentPoint sourceAttachmentPoint)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSourceAttachmentPoint">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the <i>sourceAttachmentPoint</i>. Defaults to Qt3DRender::QRenderTargetOutput::AttachmentPoint::Color0.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceAttachmentPoint-prop">sourceAttachmentPoint</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceAttachmentPoint">sourceAttachmentPoint</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_source_attachment_point(
        &self,
        source_attachment_point: crate::q_render_target_output::AttachmentPoint,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_setSourceAttachmentPoint(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            source_attachment_point,
        )
    }

    /// <p>Sets the source rectangle to <i>inputRect</i>. The coordinates are assumed to follow the normal Qt coordinate system, meaning Y runs from top to bottom.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QBlitFramebuffer::setSourceRect(const QRectF& sourceRect)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSourceRect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the source rectangle to <i>inputRect</i>. The coordinates are assumed to follow the normal Qt coordinate system, meaning Y runs from top to bottom.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceRect-prop">sourceRect</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceRect">sourceRect</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_source_rect(
        &self,
        source_rect: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QRectF>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_setSourceRect(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QRectF>>::cast_into(source_rect)
                .as_raw_ptr(),
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* Qt3DRender::QBlitFramebuffer::source() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#source-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTarget *</td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#source">source</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSource">setSource</a></b></span>(Qt3DRender::QRenderTarget *<i>source</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn source(&self) -> ::qt_core::QPtr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_source(
                self as *const crate::QBlitFramebuffer,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint Qt3DRender::QBlitFramebuffer::sourceAttachmentPoint() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceAttachmentPoint-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRenderTargetOutput::AttachmentPoint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceAttachmentPoint">sourceAttachmentPoint</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSourceAttachmentPoint">setSourceAttachmentPoint</a></b></span>(Qt3DRender::QRenderTargetOutput::AttachmentPoint <i>sourceAttachmentPoint</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceAttachmentPointChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn source_attachment_point(&self) -> crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_sourceAttachmentPoint(
            self as *const crate::QBlitFramebuffer,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QRectF Qt3DRender::QBlitFramebuffer::sourceRect() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceRect-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QRectF </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#sourceRect">sourceRect</a></b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#setSourceRect">setSourceRect</a></b></span>(const QRectF &amp;<i>inputRect</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sourceRectChanged</b></span>()</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn source_rect(&self) -> ::cpp_core::CppBox<::qt_core::QRectF> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_sourceRect(
                self as *const crate::QBlitFramebuffer,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBlitFramebuffer::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QBlitFramebuffer::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Specifies the width of rasterized lines.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QLineWidth```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the width of rasterized lines.</p></div>
#[repr(C)]
pub struct QLineWidth {
    _unused: u8,
}
impl QLineWidth {
    /// <p>Specifies the width value to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QLineWidth::setValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the width value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setValue(float)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QLineWidth::setSmooth` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#smooth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>smooth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSmooth</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>smoothChanged</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_smooth(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setSmooth(bool)\0"),
            )
        }
    }

    /// <p>Specifies the width value to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QLineWidth::valueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the width value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2valueChanged(float)\0"),
            )
        }
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QLineWidth::smoothChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#smooth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>smooth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSmooth</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>smoothChanged</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn smooth_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2smoothChanged(bool)\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QLineWidth::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_metaObject(
                self as *const crate::QLineWidth,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QLineWidth.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLineWidth::QLineWidth(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#QLineWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QLineWidth.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QLineWidth> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_QLineWidth(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Specifies the width of rasterized lines.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QLineWidth::QLineWidth()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the width of rasterized lines.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QLineWidth> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_QLineWidth1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QLineWidth::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_qt_metacall(
            self as *const crate::QLineWidth as *mut crate::QLineWidth,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QLineWidth::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_qt_metacast(
            self as *const crate::QLineWidth as *mut crate::QLineWidth,
            arg1,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QLineWidth::setSmooth(bool enabled)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#smooth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>smooth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSmooth</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>smoothChanged</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_smooth(&self, enabled: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_setSmooth(
            self as *const crate::QLineWidth as *mut crate::QLineWidth,
            enabled,
        )
    }

    /// <p>Specifies the width value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QLineWidth::setValue(float value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the width value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_value(&self, value: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_setValue(
            self as *const crate::QLineWidth as *mut crate::QLineWidth,
            value,
        )
    }

    /// <p><b>Access functions:</b></p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QLineWidth::smooth() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#smooth-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>smooth</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setSmooth</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>smoothChanged</b></span>(bool <i>enabled</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn smooth(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_smooth(
            self as *const crate::QLineWidth,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLineWidth::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QLineWidth::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the width value to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QLineWidth::value() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#value-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the width value to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>value</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setValue</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>valueChanged</b></span>(float <i>value</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn value(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_value(
            self as *const crate::QLineWidth,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html">QPickLineEvent</a> class holds information when a segment of a line is picked.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPickLineEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html">QPickLineEvent</a> class holds information when a segment of a line is picked.</p></div>
#[repr(C)]
pub struct QPickLineEvent {
    _unused: u8,
}
impl QPickLineEvent {
    /// <p>Specifies the index of the edge that was picked</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickLineEvent::edgeIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#edgeIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the edge that was picked</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#edgeIndex">edgeIndex</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn edge_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_edgeIndex(
            self as *const crate::QPickLineEvent,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPickLineEvent::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_metaObject(
                self as *const crate::QPickLineEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickLineEvent::QPickLineEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#QPickLineEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPickLineEvent> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_QPickLineEvent() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickLineEvent::QPickLineEvent(const QPointF& position, const QVector3D& worldIntersection, const QVector3D& localIntersection, float distance, unsigned int edgeIndex, unsigned int vertex1Index, unsigned int vertex2Index, Qt3DRender::QPickEvent::Buttons button, int buttons, int modifiers)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#QPickLineEvent">C++ documentation</a> for <span style='color: green;'>```QPickLineEvent::QPickLineEvent()```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickevent.html">QPickEvent</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_10a(
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        world_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        local_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        distance: ::std::os::raw::c_float,
        edge_index: ::std::os::raw::c_uint,
        vertex1_index: ::std::os::raw::c_uint,
        vertex2_index: ::std::os::raw::c_uint,
        button: crate::q_pick_event::Buttons,
        buttons: ::std::os::raw::c_int,
        modifiers: ::std::os::raw::c_int,
    ) -> ::qt_core::QBox<crate::QPickLineEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_QPickLineEvent1(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(position)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    world_intersection,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    local_intersection,
                )
                .as_raw_ptr(),
                distance,
                edge_index,
                vertex1_index,
                vertex2_index,
                button,
                buttons,
                modifiers,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPickLineEvent::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_qt_metacall(
            self as *const crate::QPickLineEvent as *mut crate::QPickLineEvent,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPickLineEvent::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_qt_metacast(
            self as *const crate::QPickLineEvent as *mut crate::QPickLineEvent,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickLineEvent::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickLineEvent::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the index of the first point of the picked edge</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickLineEvent::vertex1Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#vertex1Index-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the first point of the picked edge</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#vertex1Index">vertex1Index</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex1_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_vertex1Index(
            self as *const crate::QPickLineEvent,
        )
    }

    /// <p>Specifies the index of the second point of the picked edge</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickLineEvent::vertex2Index() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#vertex2Index-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the second point of the picked edge</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpicklineevent.html#vertex2Index">vertex2Index</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex2_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_vertex2Index(
            self as *const crate::QPickLineEvent,
        )
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html">QPickPointEvent</a> class holds information when a segment of a point cloud is picked.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QPickPointEvent```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html">QPickPointEvent</a> class holds information when a segment of a point cloud is picked.</p></div>
#[repr(C)]
pub struct QPickPointEvent {
    _unused: u8,
}
impl QPickPointEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QPickPointEvent::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_metaObject(
                self as *const crate::QPickPointEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html">QPickPointEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickPointEvent::QPickPointEvent()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html#QPickPointEvent">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html">QPickPointEvent</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QPickPointEvent> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_QPickPointEvent() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html">QPickPointEvent</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QPickPointEvent::QPickPointEvent(const QPointF& position, const QVector3D& worldIntersection, const QVector3D& localIntersection, float distance, unsigned int pointIndex, Qt3DRender::QPickEvent::Buttons button, int buttons, int modifiers)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html#QPickPointEvent">C++ documentation</a> for <span style='color: green;'>```QPickPointEvent::QPickPointEvent()```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a new <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html">QPickPointEvent</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_8a(
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPointF>>,
        world_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        local_intersection: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        distance: ::std::os::raw::c_float,
        point_index: ::std::os::raw::c_uint,
        button: crate::q_pick_event::Buttons,
        buttons: ::std::os::raw::c_int,
        modifiers: ::std::os::raw::c_int,
    ) -> ::qt_core::QBox<crate::QPickPointEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_QPickPointEvent1(
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPointF>>::cast_into(position)
                    .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    world_intersection,
                )
                .as_raw_ptr(),
                ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(
                    local_intersection,
                )
                .as_raw_ptr(),
                distance,
                point_index,
                button,
                buttons,
                modifiers,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Specifies the index of the point that was picked</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```unsigned int Qt3DRender::QPickPointEvent::pointIndex() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html#pointIndex-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the index of the point that was picked</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> uint </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpickpointevent.html#pointIndex">pointIndex</a></b></span>() const</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn point_index(&self) -> ::std::os::raw::c_uint {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_pointIndex(
            self as *const crate::QPickPointEvent,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QPickPointEvent::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_qt_metacall(
            self as *const crate::QPickPointEvent as *mut crate::QPickPointEvent,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QPickPointEvent::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_qt_metacast(
            self as *const crate::QPickPointEvent as *mut crate::QPickPointEvent,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickPointEvent::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QPickPointEvent::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Select entities which are within a distance threshold of a target entity.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QProximityFilter```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Select entities which are within a distance threshold of a target entity.</p>
/// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html">Qt3DRender::QProximityFilter</a> can be used to select entities to render when they are placed within a given distance threshold of another entity.</p></div>
#[repr(C)]
pub struct QProximityFilter {
    _unused: u8,
}
impl QProximityFilter {
    /// <p>Holds the entity against which we should compare the distance to.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QProximityFilter::setEntity` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#entity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the entity against which we should compare the distance to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>entity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEntity</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>entityChanged</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_entity(&self) -> ::qt_core::Receiver<(*mut ::qt_3d_core::QEntity,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setEntity(Qt3DCore::QEntity *)\0",
                ),
            )
        }
    }

    /// <p>Holds the distance to the target entity above which entities are filtered out.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QProximityFilter::setDistanceThreshold` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#distanceThreshold-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance to the target entity above which entities are filtered out.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThreshold</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistanceThreshold</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThresholdChanged</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_distance_threshold(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setDistanceThreshold(float)\0"),
            )
        }
    }

    /// <p>Holds the entity against which we should compare the distance to.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QProximityFilter::entityChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#entity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the entity against which we should compare the distance to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>entity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEntity</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>entityChanged</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn entity_changed(&self) -> ::qt_core::Signal<(*mut ::qt_3d_core::QEntity,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2entityChanged(Qt3DCore::QEntity *)\0",
                ),
            )
        }
    }

    /// <p>Holds the distance to the target entity above which entities are filtered out.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QProximityFilter::distanceThresholdChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#distanceThreshold-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance to the target entity above which entities are filtered out.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThreshold</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistanceThreshold</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThresholdChanged</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn distance_threshold_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2distanceThresholdChanged(float)\0",
                ),
            )
        }
    }

    /// <p>Holds the distance to the target entity above which entities are filtered out.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QProximityFilter::distanceThreshold() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#distanceThreshold-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance to the target entity above which entities are filtered out.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThreshold</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistanceThreshold</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThresholdChanged</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn distance_threshold(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_distanceThreshold(
            self as *const crate::QProximityFilter,
        )
    }

    /// <p>Holds the entity against which we should compare the distance to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QEntity* Qt3DRender::QProximityFilter::entity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#entity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the entity against which we should compare the distance to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>entity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEntity</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>entityChanged</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn entity(&self) -> ::qt_core::QPtr<::qt_3d_core::QEntity> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_entity(
                self as *const crate::QProximityFilter,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QProximityFilter::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_metaObject(
                self as *const crate::QProximityFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QProximityFilter.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QProximityFilter::QProximityFilter(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#QProximityFilter">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QProximityFilter.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QProximityFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_QProximityFilter(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Select entities which are within a distance threshold of a target entity.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QProximityFilter::QProximityFilter()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Select entities which are within a distance threshold of a target entity.</p>
    /// <p>A <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html">Qt3DRender::QProximityFilter</a> can be used to select entities to render when they are placed within a given distance threshold of another entity.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QProximityFilter> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_QProximityFilter1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QProximityFilter::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_qt_metacall(
            self as *const crate::QProximityFilter as *mut crate::QProximityFilter,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QProximityFilter::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_qt_metacast(
            self as *const crate::QProximityFilter as *mut crate::QProximityFilter,
            arg1,
        )
    }

    /// <p>Holds the distance to the target entity above which entities are filtered out.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QProximityFilter::setDistanceThreshold(float distanceThreshold)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#distanceThreshold-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the distance to the target entity above which entities are filtered out.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThreshold</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDistanceThreshold</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>distanceThresholdChanged</b></span>(float <i>distanceThreshold</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_distance_threshold(&self, distance_threshold: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_setDistanceThreshold(
            self as *const crate::QProximityFilter as *mut crate::QProximityFilter,
            distance_threshold,
        )
    }

    /// <p>Holds the entity against which we should compare the distance to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QProximityFilter::setEntity(Qt3DCore::QEntity* entity)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qproximityfilter.html#entity-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the entity against which we should compare the distance to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DCore::QEntity *</td><td class="memItemRight bottomAlign"><span class="name"><b>entity</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEntity</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>entityChanged</b></span>(Qt3DCore::QEntity *<i>entity</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_entity(
        &self,
        entity: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QEntity>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_setEntity(
            self as *const crate::QProximityFilter as *mut crate::QProximityFilter,
            ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QEntity>>::cast_into(entity)
                .as_raw_ptr() as *mut ::qt_3d_core::QEntity,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QProximityFilter::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QProximityFilter::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html">Qt3DRender::QRayCaster</a> is used to perform ray casting tests in 3d world coordinates.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRayCaster```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html">Qt3DRender::QRayCaster</a> is used to perform ray casting tests in 3d world coordinates.</p>
/// <p>The 3d ray is defined by its origin, direction and length. It will be affected by the transformations applied to the entity it belongs to.</p>
/// <p>Ray casting tests will be performed every frame as long as the component is enabled. The hits property will be updated with the list of intersections.</p></div>
#[repr(C)]
pub struct QRayCaster {
    _unused: u8,
}
impl QRayCaster {
    /// <p>Holds the origin of the 3D ray in local coordinates.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRayCaster::setOrigin` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#origin-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the origin of the 3D ray in local coordinates.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>origin</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setOrigin</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>originChanged</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_origin(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setOrigin(QVector3D const &)\0"),
            )
        }
    }

    /// <p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRayCaster::setDirection` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_direction(&self) -> ::qt_core::Receiver<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setDirection(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Sets the length of the ray to <i>length</i>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRayCaster::setLength` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#setLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the length of the ray to <i>length</i>.</p>
    /// <p>If the value is less than or equal to zero, the ray is concidered to be infinite.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#length-prop">length</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#length-prop">length</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_length(&self) -> ::qt_core::Receiver<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLength(float)\0"),
            )
        }
    }

    /// <p>Convenience method to enable the component and trigger tests using the current ray.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRayCaster::trigger` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#trigger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to enable the component and trigger tests using the current ray.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_trigger(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1trigger()\0"),
            )
        }
    }

    /// <p>Convenience method to set the ray details <i>origin</i>, <i>direction</i>, and <i>length</i>, and enable the component to trigger tests.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRayCaster::trigger` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#trigger-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to set the ray details <i>origin</i>, <i>direction</i>, and <i>length</i>, and enable the component to trigger tests.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_trigger2(
        &self,
    ) -> ::qt_core::Receiver<(
        *const ::qt_gui::QVector3D,
        *const ::qt_gui::QVector3D,
        ::std::os::raw::c_float,
    )> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1trigger(QVector3D const &,QVector3D const &,float)\0",
                ),
            )
        }
    }

    /// <p>Holds the origin of the 3D ray in local coordinates.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRayCaster::originChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#origin-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the origin of the 3D ray in local coordinates.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>origin</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setOrigin</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>originChanged</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn origin_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2originChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRayCaster::directionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn direction_changed(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2directionChanged(QVector3D const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the length of the 3D ray.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRayCaster::lengthChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#length-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the length of the 3D ray.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>length</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#setLength">setLength</a></b></span>(float <i>length</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>lengthChanged</b></span>(float <i>length</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn length_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_float,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2lengthChanged(float)\0"),
            )
        }
    }

    /// <p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QRayCaster::direction() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn direction(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_direction(
                self as *const crate::QRayCaster,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the length of the 3D ray.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```float Qt3DRender::QRayCaster::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#length-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the length of the 3D ray.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> float </td><td class="memItemRight bottomAlign"><span class="name"><b>length</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#setLength">setLength</a></b></span>(float <i>length</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>lengthChanged</b></span>(float <i>length</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn length(&self) -> ::std::os::raw::c_float {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_length(
            self as *const crate::QRayCaster,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRayCaster::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_metaObject(
                self as *const crate::QRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QRayCaster.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRayCaster::QRayCaster(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#QRayCaster">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QRayCaster.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_QRayCaster(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html">Qt3DRender::QRayCaster</a> is used to perform ray casting tests in 3d world coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRayCaster::QRayCaster()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html">Qt3DRender::QRayCaster</a> is used to perform ray casting tests in 3d world coordinates.</p>
    /// <p>The 3d ray is defined by its origin, direction and length. It will be affected by the transformations applied to the entity it belongs to.</p>
    /// <p>Ray casting tests will be performed every frame as long as the component is enabled. The hits property will be updated with the list of intersections.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRayCaster> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_QRayCaster1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Holds the origin of the 3D ray in local coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector3D Qt3DRender::QRayCaster::origin() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#origin-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the origin of the 3D ray in local coordinates.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>origin</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setOrigin</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>originChanged</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn origin(&self) -> ::cpp_core::CppBox<::qt_gui::QVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_origin(
                self as *const crate::QRayCaster,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRayCaster::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_qt_metacall(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRayCaster::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_qt_metacast(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
            arg1,
        )
    }

    /// <p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRayCaster::setDirection(const QVector3D& direction)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#direction-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the direction of the 3D ray. This should be a unit vector.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>direction</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setDirection</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>directionChanged</b></span>(const QVector3D &amp;<i>direction</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_direction(
        &self,
        direction: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_setDirection(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(direction)
                .as_raw_ptr(),
        )
    }

    /// <p>Sets the length of the ray to <i>length</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRayCaster::setLength(float length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#setLength">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the length of the ray to <i>length</i>.</p>
    /// <p>If the value is less than or equal to zero, the ray is concidered to be infinite.</p>
    /// <p><b>Note:</b> Setter function for property <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#length-prop">length</a>. </p><p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#length-prop">length</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_length(&self, length: ::std::os::raw::c_float) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_setLength(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
            length,
        )
    }

    /// <p>Holds the origin of the 3D ray in local coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRayCaster::setOrigin(const QVector3D& origin)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#origin-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the origin of the 3D ray in local coordinates.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVector3D </td><td class="memItemRight bottomAlign"><span class="name"><b>origin</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setOrigin</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>originChanged</b></span>(const QVector3D &amp;<i>origin</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_origin(
        &self,
        origin: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_setOrigin(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(origin)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRayCaster::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRayCaster::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Convenience method to enable the component and trigger tests using the current ray.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRayCaster::trigger()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#trigger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to enable the component and trigger tests using the current ray.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_0a(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_trigger(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
        )
    }

    /// <p>Convenience method to set the ray details <i>origin</i>, <i>direction</i>, and <i>length</i>, and enable the component to trigger tests.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRayCaster::trigger(const QVector3D& origin, const QVector3D& direction, float length)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycaster.html#trigger-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to set the ray details <i>origin</i>, <i>direction</i>, and <i>length</i>, and enable the component to trigger tests.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_3a(
        &self,
        origin: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        direction: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
        length: ::std::os::raw::c_float,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_trigger1(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(origin)
                .as_raw_ptr(),
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(direction)
                .as_raw_ptr(),
            length,
        )
    }
}

/// <p>Performe ray casting test based on screen coordinates.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QScreenRayCaster```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Performe ray casting test based on screen coordinates.</p>
/// <p><a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html">QScreenRayCaster</a> can be used to perform ray casting tests by specifying coordinates in screen space, which will be used to construct an actual 3D ray between the near and far planes.</p></div>
#[repr(C)]
pub struct QScreenRayCaster {
    _unused: u8,
}
impl QScreenRayCaster {
    /// <p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QScreenRayCaster::setPosition` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#position-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    /// <p>Note: the coordinates will be used for every available render surface as long as they are in the valid range.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>position</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPosition</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionChanged</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_position(&self) -> ::qt_core::Receiver<(*const ::qt_core::QPoint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setPosition(QPoint const &)\0"),
            )
        }
    }

    /// <p>Convenience method to enable the component and trigger tests using the current coordinate value.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QScreenRayCaster::trigger` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#trigger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to enable the component and trigger tests using the current coordinate value.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_trigger(&self) -> ::qt_core::Receiver<()> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1trigger()\0"),
            )
        }
    }

    /// <p>Convenience method to set the coordinate value <i>position</i> and enable the component to trigger tests.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QScreenRayCaster::trigger` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#trigger-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to set the coordinate value <i>position</i> and enable the component to trigger tests.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_trigger2(&self) -> ::qt_core::Receiver<(*const ::qt_core::QPoint,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1trigger(QPoint const &)\0"),
            )
        }
    }

    /// <p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QScreenRayCaster::positionChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#position-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    /// <p>Note: the coordinates will be used for every available render surface as long as they are in the valid range.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>position</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPosition</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionChanged</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn position_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QPoint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2positionChanged(QPoint const &)\0",
                ),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QScreenRayCaster::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_metaObject(
                self as *const crate::QScreenRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QScreenRayCaster.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QScreenRayCaster::QScreenRayCaster(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#QScreenRayCaster">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QScreenRayCaster.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_QScreenRayCaster(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Performe ray casting test based on screen coordinates.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QScreenRayCaster::QScreenRayCaster()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Performe ray casting test based on screen coordinates.</p>
    /// <p><a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html">QScreenRayCaster</a> can be used to perform ray casting tests by specifying coordinates in screen space, which will be used to construct an actual 3D ray between the near and far planes.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QScreenRayCaster> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_QScreenRayCaster1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QPoint Qt3DRender::QScreenRayCaster::position() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#position-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    /// <p>Note: the coordinates will be used for every available render surface as long as they are in the valid range.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>position</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPosition</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionChanged</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn position(&self) -> ::cpp_core::CppBox<::qt_core::QPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_position(
                self as *const crate::QScreenRayCaster,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QScreenRayCaster::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_qt_metacall(
            self as *const crate::QScreenRayCaster as *mut crate::QScreenRayCaster,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QScreenRayCaster::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_qt_metacast(
            self as *const crate::QScreenRayCaster as *mut crate::QScreenRayCaster,
            arg1,
        )
    }

    /// <p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QScreenRayCaster::setPosition(const QPoint& position)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#position-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the screen space position used to compute the actual 3D ray for intersection tests.</p>
    /// <p>Note: the coordinates will be used for every available render surface as long as they are in the valid range.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QPoint </td><td class="memItemRight bottomAlign"><span class="name"><b>position</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setPosition</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>positionChanged</b></span>(const QPoint &amp;<i>position</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_position(
        &self,
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_setPosition(
            self as *const crate::QScreenRayCaster as *mut crate::QScreenRayCaster,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(position)
                .as_raw_ptr(),
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QScreenRayCaster::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QScreenRayCaster::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Convenience method to enable the component and trigger tests using the current coordinate value.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QScreenRayCaster::trigger()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#trigger">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to enable the component and trigger tests using the current coordinate value.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_0a(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_trigger(
            self as *const crate::QScreenRayCaster as *mut crate::QScreenRayCaster,
        )
    }

    /// <p>Convenience method to set the coordinate value <i>position</i> and enable the component to trigger tests.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QScreenRayCaster::trigger(const QPoint& position)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qscreenraycaster.html#trigger-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Convenience method to set the coordinate value <i>position</i> and enable the component to trigger tests.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn trigger_1a(
        &self,
        position: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_trigger1(
            self as *const crate::QScreenRayCaster as *mut crate::QScreenRayCaster,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(position)
                .as_raw_ptr(),
        )
    }
}

/// <p>Generates a Shader Program content from loaded graphs.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QShaderProgramBuilder```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Generates a Shader Program content from loaded graphs.</p>
/// <p>A shader program builder consists of several different shader graphs used to generate shader code.</p></div>
#[repr(C)]
pub struct QShaderProgramBuilder {
    _unused: u8,
}
impl QShaderProgramBuilder {
    /// <p>Holds the shader program on which this builder generates code.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setShaderProgram` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the shader program on which this builder generates code.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(Qt3DRender::QShaderProgram *<i>program</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(Qt3DRender::QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_shader_program(&self) -> ::qt_core::Receiver<(*mut crate::QShaderProgram,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setShaderProgram(Qt3DRender::QShaderProgram *)\0",
                ),
            )
        }
    }

    /// <p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setEnabledLayers` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#enabledLayers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEnabledLayers</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayersChanged</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_enabled_layers(&self) -> ::qt_core::Receiver<(*const ::qt_core::QStringList,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setEnabledLayers(QStringList const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setVertexShaderGraph` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#vertexShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderGraph</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraphChanged</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_vertex_shader_graph(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setVertexShaderGraph(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setTessellationControlShaderGraph` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationControlShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderGraph</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_tessellation_control_shader_graph(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setTessellationControlShaderGraph(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setTessellationEvaluationShaderGraph` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationEvaluationShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderGraph</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_tessellation_evaluation_shader_graph(
        &self,
    ) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setTessellationEvaluationShaderGraph(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setGeometryShaderGraph` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#geometryShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderGraph</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraphChanged</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_geometry_shader_graph(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setGeometryShaderGraph(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setFragmentShaderGraph` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#fragmentShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderGraph</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraphChanged</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_fragment_shader_graph(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFragmentShaderGraph(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderProgramBuilder::setComputeShaderGraph` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#computeShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderGraph</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraphChanged</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_compute_shader_graph(&self) -> ::qt_core::Receiver<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setComputeShaderGraph(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the shader program on which this builder generates code.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::shaderProgramChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the shader program on which this builder generates code.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(Qt3DRender::QShaderProgram *<i>program</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(Qt3DRender::QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn shader_program_changed(&self) -> ::qt_core::Signal<(*mut crate::QShaderProgram,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2shaderProgramChanged(Qt3DRender::QShaderProgram *)\0",
                ),
            )
        }
    }

    /// <p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::enabledLayersChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#enabledLayers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEnabledLayers</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayersChanged</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn enabled_layers_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QStringList,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2enabledLayersChanged(QStringList const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::vertexShaderGraphChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#vertexShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderGraph</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraphChanged</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn vertex_shader_graph_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2vertexShaderGraphChanged(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::tessellationControlShaderGraphChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationControlShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderGraph</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn tessellation_control_shader_graph_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2tessellationControlShaderGraphChanged(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::tessellationEvaluationShaderGraphChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationEvaluationShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderGraph</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn tessellation_evaluation_shader_graph_changed(
        &self,
    ) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2tessellationEvaluationShaderGraphChanged(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::geometryShaderGraphChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#geometryShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderGraph</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraphChanged</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn geometry_shader_graph_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2geometryShaderGraphChanged(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::fragmentShaderGraphChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#fragmentShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderGraph</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraphChanged</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn fragment_shader_graph_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2fragmentShaderGraphChanged(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderProgramBuilder::computeShaderGraphChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#computeShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderGraph</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraphChanged</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn compute_shader_graph_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QUrl,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2computeShaderGraphChanged(QUrl const &)\0",
                ),
            )
        }
    }

    /// <p>Holds the generate compute shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgramBuilder::computeShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#computeShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate compute shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCodeChanged</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn compute_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_computeShaderCode(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate compute shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QShaderProgramBuilder::computeShaderCodeChanged(const QByteArray& computeShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#computeShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate compute shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderCodeChanged</b></span>(const QByteArray &amp;<i>computeShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn compute_shader_code_changed(
        &self,
        compute_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_computeShaderCodeChanged(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(
                compute_shader_code,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QShaderProgramBuilder::computeShaderGraph() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#computeShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderGraph</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraphChanged</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn compute_shader_graph(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_computeShaderGraph(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QStringList Qt3DRender::QShaderProgramBuilder::enabledLayers() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#enabledLayers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEnabledLayers</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayersChanged</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn enabled_layers(&self) -> ::cpp_core::CppBox<::qt_core::QStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_enabledLayers(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate fragment shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgramBuilder::fragmentShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#fragmentShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate fragment shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCodeChanged</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fragment_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_fragmentShaderCode(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate fragment shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QShaderProgramBuilder::fragmentShaderCodeChanged(const QByteArray& fragmentShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#fragmentShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate fragment shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderCodeChanged</b></span>(const QByteArray &amp;<i>fragmentShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fragment_shader_code_changed(
        &self,
        fragment_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_fragmentShaderCodeChanged(self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(fragment_shader_code).as_raw_ptr())
    }

    /// <p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QShaderProgramBuilder::fragmentShaderGraph() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#fragmentShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderGraph</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraphChanged</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fragment_shader_graph(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_fragmentShaderGraph(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate geometry shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgramBuilder::geometryShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#geometryShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate geometry shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCodeChanged</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn geometry_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_geometryShaderCode(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate geometry shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QShaderProgramBuilder::geometryShaderCodeChanged(const QByteArray& geometryShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#geometryShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate geometry shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderCodeChanged</b></span>(const QByteArray &amp;<i>geometryShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn geometry_shader_code_changed(
        &self,
        geometry_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_geometryShaderCodeChanged(self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(geometry_shader_code).as_raw_ptr())
    }

    /// <p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QShaderProgramBuilder::geometryShaderGraph() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#geometryShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderGraph</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraphChanged</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn geometry_shader_graph(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_geometryShaderGraph(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QShaderProgramBuilder::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_metaObject(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Default constructs an instance of QShaderProgramBuilder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderProgramBuilder::QShaderProgramBuilder(Qt3DCore::QNode* parent = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#QShaderProgramBuilder">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Default constructs an instance of QShaderProgramBuilder.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QShaderProgramBuilder> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_QShaderProgramBuilder(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent).as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Generates a Shader Program content from loaded graphs.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderProgramBuilder::QShaderProgramBuilder()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Generates a Shader Program content from loaded graphs.</p>
    /// <p>A shader program builder consists of several different shader graphs used to generate shader code.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QShaderProgramBuilder> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_QShaderProgramBuilder1()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QShaderProgramBuilder::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_qt_metacall(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QShaderProgramBuilder::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_qt_metacast(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            arg1,
        )
    }

    /// <p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setComputeShaderGraph(const QUrl& computeShaderGraph)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#computeShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the compute shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setComputeShaderGraph</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>computeShaderGraphChanged</b></span>(const QUrl &amp;<i>computeShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_compute_shader_graph(
        &self,
        compute_shader_graph: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setComputeShaderGraph(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(
                compute_shader_graph,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setEnabledLayers(const QStringList& layers)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#enabledLayers-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the list of layers this builder will activate on the shader graphs during code generation.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QStringList </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayers</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEnabledLayers</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>enabledLayersChanged</b></span>(const QStringList &amp;<i>layers</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_enabled_layers(
        &self,
        layers: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setEnabledLayers(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(layers)
                .as_raw_ptr(),
        )
    }

    /// <p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setFragmentShaderGraph(const QUrl& fragmentShaderGraph)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#fragmentShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the fragment shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFragmentShaderGraph</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>fragmentShaderGraphChanged</b></span>(const QUrl &amp;<i>fragmentShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_fragment_shader_graph(
        &self,
        fragment_shader_graph: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setFragmentShaderGraph(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(
                fragment_shader_graph,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setGeometryShaderGraph(const QUrl& geometryShaderGraph)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#geometryShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the geometry shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setGeometryShaderGraph</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>geometryShaderGraphChanged</b></span>(const QUrl &amp;<i>geometryShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_geometry_shader_graph(
        &self,
        geometry_shader_graph: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setGeometryShaderGraph(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(
                geometry_shader_graph,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the shader program on which this builder generates code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setShaderProgram(Qt3DRender::QShaderProgram* program)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the shader program on which this builder generates code.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(Qt3DRender::QShaderProgram *<i>program</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(Qt3DRender::QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_shader_program(
        &self,
        program: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QShaderProgram>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setShaderProgram(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QShaderProgram>>::cast_into(program)
                .as_raw_ptr() as *mut crate::QShaderProgram,
        )
    }

    /// <p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setTessellationControlShaderGraph(const QUrl& tessellationControlShaderGraph)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationControlShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderGraph</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_tessellation_control_shader_graph(
        &self,
        tessellation_control_shader_graph: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setTessellationControlShaderGraph(self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(tessellation_control_shader_graph).as_raw_ptr())
    }

    /// <p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setTessellationEvaluationShaderGraph(const QUrl& tessellationEvaluationShaderGraph)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationEvaluationShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderGraph</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_tessellation_evaluation_shader_graph(
        &self,
        tessellation_evaluation_shader_graph: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<::qt_core::QUrl>,
        >,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setTessellationEvaluationShaderGraph(self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(tessellation_evaluation_shader_graph).as_raw_ptr())
    }

    /// <p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderProgramBuilder::setVertexShaderGraph(const QUrl& vertexShaderGraph)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#vertexShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderGraph</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraphChanged</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_vertex_shader_graph(
        &self,
        vertex_shader_graph: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QUrl>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_setVertexShaderGraph(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QUrl>>::cast_into(
                vertex_shader_graph,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the shader program on which this builder generates code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgram* Qt3DRender::QShaderProgramBuilder::shaderProgram() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#shaderProgram-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the shader program on which this builder generates code.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderProgram *</td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgram</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setShaderProgram</b></span>(Qt3DRender::QShaderProgram *<i>program</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>shaderProgramChanged</b></span>(Qt3DRender::QShaderProgram *<i>shaderProgram</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shader_program(&self) -> ::qt_core::QPtr<crate::QShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_shaderProgram(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Holds the generate tessellation control shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgramBuilder::tessellationControlShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationControlShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate tessellation control shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tessellation_control_shader_code(
        &self,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_tessellationControlShaderCode(self as *const crate::QShaderProgramBuilder)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate tessellation control shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QShaderProgramBuilder::tessellationControlShaderCodeChanged(const QByteArray& tessellationControlShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationControlShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate tessellation control shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationControlShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tessellation_control_shader_code_changed(
        &self,
        tessellation_control_shader_code: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<::qt_core::QByteArray>,
        >,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_tessellationControlShaderCodeChanged(self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(tessellation_control_shader_code).as_raw_ptr())
    }

    /// <p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QShaderProgramBuilder::tessellationControlShaderGraph() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationControlShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation control shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationControlShaderGraph</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationControlShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationControlShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tessellation_control_shader_graph(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_tessellationControlShaderGraph(self as *const crate::QShaderProgramBuilder)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate tessellation evaluation shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgramBuilder::tessellationEvaluationShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationEvaluationShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate tessellation evaluation shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tessellation_evaluation_shader_code(
        &self,
    ) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_tessellationEvaluationShaderCode(self as *const crate::QShaderProgramBuilder)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate tessellation evaluation shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QShaderProgramBuilder::tessellationEvaluationShaderCodeChanged(const QByteArray& tessellationEvaluationShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationEvaluationShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate tessellation evaluation shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderCodeChanged</b></span>(const QByteArray &amp;<i>tessellationEvaluationShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tessellation_evaluation_shader_code_changed(
        &self,
        tessellation_evaluation_shader_code: impl ::cpp_core::CastInto<
            ::cpp_core::Ref<::qt_core::QByteArray>,
        >,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_tessellationEvaluationShaderCodeChanged(self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(tessellation_evaluation_shader_code).as_raw_ptr())
    }

    /// <p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QShaderProgramBuilder::tessellationEvaluationShaderGraph() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#tessellationEvaluationShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the tesselation evaluation shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTessellationEvaluationShaderGraph</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>tessellationEvaluationShaderGraphChanged</b></span>(const QUrl &amp;<i>tessellationEvaluationShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tessellation_evaluation_shader_graph(
        &self,
    ) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_tessellationEvaluationShaderGraph(self as *const crate::QShaderProgramBuilder)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderProgramBuilder::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderProgramBuilder::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate vertex shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QByteArray Qt3DRender::QShaderProgramBuilder::vertexShaderCode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#vertexShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate vertex shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCodeChanged</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex_shader_code(&self) -> ::cpp_core::CppBox<::qt_core::QByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_vertexShaderCode(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Holds the generate vertex shader code.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QShaderProgramBuilder::vertexShaderCodeChanged(const QByteArray& vertexShaderCode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#vertexShaderCode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the generate vertex shader code.</p>
    /// <p>This property was introduced in  Qt 5.13.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QByteArray </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCode</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderCodeChanged</b></span>(const QByteArray &amp;<i>vertexShaderCode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex_shader_code_changed(
        &self,
        vertex_shader_code: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_vertexShaderCodeChanged(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(
                vertex_shader_code,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QUrl Qt3DRender::QShaderProgramBuilder::vertexShaderGraph() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#vertexShaderGraph-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the URL to the vertex shader graph used by this shader program builder.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QUrl </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraph</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setVertexShaderGraph</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>vertexShaderGraphChanged</b></span>(const QUrl &amp;<i>vertexShaderGraph</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn vertex_shader_graph(&self) -> ::cpp_core::CppBox<::qt_core::QUrl> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_vertexShaderGraph(
                self as *const crate::QShaderProgramBuilder,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
///
/// C++ class: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qvector.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> class is a template class that provides a dynamic array.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; is one of Qt's generic <a href="http://doc.qt.io/qt-5/containers.html">container classes</a>. It stores its items in adjacent memory locations and provides fast index-based access.</p>
/// <p><a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>&lt;T&gt;, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt;, and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>&lt;T&gt; provide similar APIs and functionality. They are often interchangeable, but there are performance consequences. Here is an overview of use cases:</p>
/// <ul>
/// <li><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> should be your default first choice. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; will usually give better performance than <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt;, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>&lt;T&gt; always stores its items sequentially in memory, where <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>&lt;T&gt; will allocate its items on the heap unless <code>sizeof(T) &lt;= sizeof(void*)</code> and T has been declared to be either a <code>Q_MOVABLE_TYPE</code> or a <code>Q_PRIMITIVE_TYPE</code> using <a href="http://doc.qt.io/qt-5/qtglobal.html#Q_DECLARE_TYPEINFO">Q_DECLARE_TYPEINFO</a>. See the <a href="http://marcmutz.wordpress.com/effective-qt/containers/#containers-qlist">Pros and Cons of Using QList</a> for an explanation.</li>
/// <li>However, <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> is used throughout the Qt APIs for passing parameters and for returning values. Use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> to interface with those APIs.</li>
/// <li>If you need a real linked list, which guarantees <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a> insertions mid-list and uses iterators to items rather than indexes, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a>.</li>
/// </ul>
/// <p><b>Note: </b><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a> both guarantee C-compatible array layout. <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> does not. This might be important if your application must interface with a C API.</p><p><b>Note: </b>Iterators into a <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> and references into heap-allocating QLists remain valid as long as the referenced items remain in the container. This is not true for iterators and references into a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> and non-heap-allocating QLists.</p><p>Here's an example of a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores integers and a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> that stores <a href="http://doc.qt.io/qt-5/qstring.html">QString</a> values:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> integerVector;
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> stringVector;
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> stores its items in a vector (array). Typically, vectors are created with an initial size. For example, the following code constructs a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> with 200 elements:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span>);
///
/// </pre>
/// <p>The elements are automatically initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you want to initialize the vector with a different value, pass that value as the second argument to the constructor:</p>
/// <pre class="cpp">
///
///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">200</span><span class="operator">,</span> <span class="string">"Pass"</span>);
///
/// </pre>
/// <p>You can also call <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>() at any time to fill the vector with a value.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const vectors, operator[]() returns a reference to the item that can be used on the left side of an assignment:</p>
/// <pre class="cpp">
///
///   <span class="keyword">if</span> (vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span><span class="operator">=</span> <span class="string">"Liz"</span>)
/// &#32;     vector<span class="operator">[</span><span class="number">0</span><span class="operator">]</span> <span class="operator">=</span> <span class="string">"Elizabeth"</span>;
///
/// </pre>
/// <p>For read-only access, an alternative syntax is to use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>():</p>
/// <pre class="cpp">
///
///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> vector<span class="operator">.</span>size(); <span class="operator">+</span><span class="operator">+</span>i) {
/// &#32;     <span class="keyword">if</span> (vector<span class="operator">.</span>at(i) <span class="operator">=</span><span class="operator">=</span> <span class="string">"Alfonso"</span>)
/// &#32;   &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"Found Alfonso at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///   }
///
/// </pre>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() can be faster than operator[](), because it never causes a <a href="http://doc.qt.io/qt-5/implicit-sharing.html#deep-copy">deep copy</a> to occur.</p>
/// <p>Another way to access the data stored in a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is to call <a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>(). The function returns a pointer to the first item in the vector. You can use the pointer to directly access and modify the elements stored in the vector. The pointer is also useful if you need to pass a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to a function that accepts a plain C++ array.</p>
/// <p>If you want to find all occurrences of a particular value in a vector, use <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() or <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>(). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:</p>
/// <pre class="cpp">
///
///   <span class="type">int</span> i <span class="operator">=</span> vector<span class="operator">.</span>indexOf(<span class="string">"Harumi"</span>);
///   <span class="keyword">if</span> (i <span class="operator">!</span><span class="operator">=</span> <span class="operator">-</span><span class="number">1</span>)
/// &#32;     cout <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"First occurrence of Harumi is at position "</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> i <span class="operator">&lt;</span><span class="operator">&lt;</span> endl;
///
/// </pre>
/// <p>If you simply want to check whether a vector contains a particular value, use <a href="http://doc.qt.io/qt-5/qvector.html#contains">contains</a>(). If you want to find out how many times a particular value occurs in the vector, use <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides these basic functions to add, move, and remove items: <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(). With the exception of <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), these functions can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>) for large vectors, because they require moving many items in the vector by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
/// <p>Unlike plain C++ arrays, QVectors can be resized at any time by calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). If the new size is larger than the old size, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> might need to reallocate the whole vector. <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.</p>
/// <p>If you know in advance approximately how many items the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will contain, you can call <a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>(), asking <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to preallocate a certain amount of memory. You can also call <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>() to find out how much memory <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> actually allocated.</p>
/// <p>Note that using non-const operators and functions can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy of the data. This is due to <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicit sharing</a>.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s value type must be an <a href="http://doc.qt.io/qt-5/containers.html#assignable-data-type">assignable data type</a>. This covers most data types that are commonly used, but the compiler won't let you, for example, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> as a value; instead, store a <a href="http://doc.qt.io/qt-5/qwidget.html">QWidget</a> *. A few functions have additional requirements; for example, <a href="http://doc.qt.io/qt-5/qvector.html#indexOf">indexOf</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#lastIndexOf">lastIndexOf</a>() expect the value type to support <code>operator==()</code>. These requirements are documented on a per-function basis.</p>
/// <p>Like the other container classes, <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> provides <a href="http://doc.qt.io/qt-5/containers.html#java-style-iterators">Java-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvectoriterator.html">QVectorIterator</a> and <a href="http://doc.qt.io/qt-5/qmutablevectoriterator.html">QMutableVectorIterator</a>) and <a href="http://doc.qt.io/qt-5/containers.html#stl-style-iterators">STL-style iterators</a> (<a href="http://doc.qt.io/qt-5/qvector.html#const_iterator-typedef">QVector::const_iterator</a> and <a href="http://doc.qt.io/qt-5/qvector.html#iterator-typedefx">QVector::iterator</a>). In practice, these are rarely used, because you can use indexes into the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>.</p>
/// <p>In addition to <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>, Qt also provides <a href="http://doc.qt.io/qt-5/qvarlengtharray.html">QVarLengthArray</a>, a very low-level class with little functionality that is optimized for speed.</p>
/// <p><a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> does <i>not</i> support inserting, prepending, appending or replacing with references to its own values. Doing so will cause your application to abort with an error message.</p>
/// <a name="more-information-on-using-qt-containers"></a>
/// <h4>More Information on Using Qt Containers</h4>
/// <p>For a detailed discussion comparing Qt containers with each other and with STL containers, see <a href="http://marcmutz.wordpress.com/effective-qt/containers/">Understand the Qt Containers</a>.</p></div>
#[repr(C)]
pub struct QVectorOfQRayCasterHit {
    _unused: u8,
}
impl QVectorOfQRayCasterHit {
    /// <p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>& QVector<Qt3DRender::QRayCasterHit>::operator+=(const QVector<Qt3DRender::QRayCasterHit>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends the items of the <i>other</i> vector to this vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">operator+</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn add_assign_q_vector_of_q_ray_caster_hit(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator__4(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(
                    l,
                )
                .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>& QVector<Qt3DRender::QRayCasterHit>::operator+=(const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends <i>value</i> to the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn add_assign_q_ray_caster_hit(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator__5(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at the end of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::append(const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the end of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>append(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>append(<span class="string">"two"</span>);
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span> three <span class="operator">=</span> <span class="string">"three"</span>;
    ///   vector<span class="operator">.</span>append(three);
    ///   <span class="comment">// vector: ["one", "two", "three"]</span>
    ///   <span class="comment">// three: "three"</span>
    ///
    /// </pre>
    /// <p>This is the same as calling resize(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() + 1) and assigning <i>value</i> to the new last element in the vector.</p>
    /// <p>This operation is relatively fast, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> typically allocates more memory than necessary, so it can grow without reallocating the entire vector each time.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn append_q_ray_caster_hit(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_append(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::append(const QVector<Qt3DRender::QRayCasterHit>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#append-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Appends the items of the <i>value</i> vector to this vector.</p>
    /// <p>This function was introduced in  Qt 5.5.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">operator&lt;&lt;</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn append_q_vector_of_q_ray_caster_hit(
        &self,
        l: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_append2(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(l)
                .as_raw_ptr(),
        )
    }

    /// <p>Returns the item at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::at(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#at">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> in the vector.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn at(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_at(
                self as *const crate::QVectorOfQRayCasterHit,
                i,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn back_mut(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_back(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::back() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#back-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn back(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_back1(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRayCasterHit>::capacity() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#capacity">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the maximum number of items that can be stored in the vector without forcing a reallocation.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the vector, call <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn capacity(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_capacity(
            self as *const crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Removes all the elements from the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::clear()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#clear">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes all the elements from the vector.</p>
    /// <p><b>Note: </b>Until Qt 5.6, this also released the memory used by the vector. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed vector:</p><pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span> v <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>;
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span>T<span class="operator">&gt;</span>()<span class="operator">.</span>swap(v);
    ///   Q_ASSERT(v<span class="operator">.</span>capacity() <span class="operator">=</span><span class="operator">=</span> <span class="number">0</span>);
    ///
    /// </pre>
    /// <p>or call <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn clear(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_clear(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit* QVector<Qt3DRender::QRayCasterHit>::constData() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constData">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const pointer to the data stored in the vector. The pointer can be used to access the items in the vector. The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#data">data</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn const_data(&self) -> ::cpp_core::Ptr<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_constData(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut crate::QRayCasterHit)
    }

    /// <p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::constFirst() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn const_first(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_constFirst(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::constLast() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#constLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a const reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn const_last(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_constLast(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>& QVector<Qt3DRender::QRayCasterHit>::operator=(const QVector<Qt3DRender::QRayCasterHit>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>other</i> to this vector and returns a reference to this vector.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn copy_from(
        &self,
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator_(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(
                    v,
                )
                .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRayCasterHit>::count() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#count-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn count(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_count1(
            self as *const crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit* QVector<Qt3DRender::QRayCasterHit>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn data_mut(&self) -> ::cpp_core::Ptr<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_data(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit* QVector<Qt3DRender::QRayCasterHit>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_data1(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut crate::QRayCasterHit)
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::detach()```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn detach(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_detach(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRayCasterHit>::empty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#empty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), returning <code>true</code> if the vector is empty; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_empty(
            self as *const crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>& QVector<Qt3DRender::QRayCasterHit>::fill(const Qt3DRender::QRayCasterHit& t, int size = …)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fill_2a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_fill(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                    .as_raw_ptr(),
                size,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>& QVector<Qt3DRender::QRayCasterHit>::fill(const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#fill">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Assigns <i>value</i> to all items in the vector. If <i>size</i> is different from -1 (the default), the vector is resized to size <i>size</i> beforehand.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector(<span class="number">3</span>);
    ///   vector<span class="operator">.</span>fill(<span class="string">"Yes"</span>);
    ///   <span class="comment">// vector: ["Yes", "Yes", "Yes"]</span>
    ///
    ///   vector<span class="operator">.</span>fill(<span class="string">"oh"</span><span class="operator">,</span> <span class="number">5</span>);
    ///   <span class="comment">// vector: ["oh", "oh", "oh", "oh", "oh"]</span>
    ///
    /// </pre>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn fill_1a(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_fill1(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::first()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the first item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#last">last</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constFirst">constFirst</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn first_mut(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_first(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::first() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#first-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn first(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_first1(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn front_mut(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_front(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::front() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#front-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn front(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_front1(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::operator[](int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the item at index position <i>i</i> as a modifiable reference.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p>Note that using non-const operators can cause <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> to do a deep copy.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#value">value</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn index_mut(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator__2(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
                i,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::operator[](int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Same as at(<i>i</i>).</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn index(&self, i: ::std::os::raw::c_int) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator__3(
                self as *const crate::QVectorOfQRayCasterHit,
                i,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::insert(int i, const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at index position <i>i</i> in the vector. If <i>i</i> is 0, the value is prepended to the vector. If <i>i</i> is <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), the value is appended to the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"alpha"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"beta"</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="string">"delta"</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">2</span><span class="operator">,</span> <span class="string">"gamma"</span>);
    ///   <span class="comment">// vector: ["alpha", "beta", "gamma", "delta"]</span>
    ///
    /// </pre>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items at indexes <i>i</i> and above by one position further in memory. If you want a container class that provides a fast insert() function, use <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#prepend">prepend</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn insert_2a(
        &self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_insert(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::insert(int i, int n, const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#insert-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Inserts <i>count</i> copies of <i>value</i> at index position <i>i</i> in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">double</span><span class="operator">&gt;</span> vector;
    ///   vector <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">2.718</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">1.442</span> <span class="operator">&lt;</span><span class="operator">&lt;</span> <span class="number">0.4342</span>;
    ///   vector<span class="operator">.</span>insert(<span class="number">1</span><span class="operator">,</span> <span class="number">3</span><span class="operator">,</span> <span class="number">9.9</span>);
    ///   <span class="comment">// vector: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]</span>
    ///
    /// </pre></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn insert_3a(
        &self,
        i: ::std::os::raw::c_int,
        n: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_insert1(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            i,
            n,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRayCasterHit>::isDetached() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn is_detached(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_isDetached(
            self as *const crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRayCasterHit>::isEmpty() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the vector has size 0; otherwise returns <code>false</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn is_empty(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_isEmpty(
            self as *const crate::QVectorOfQRayCasterHit,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRayCasterHit>::isSharedWith(const QVector<Qt3DRender::QRayCasterHit>& other) const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn is_shared_with(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_isSharedWith(
            self as *const crate::QVectorOfQRayCasterHit,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(
                other,
            )
            .as_raw_ptr(),
        )
    }

    /// <p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::last()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a reference to the last item in the vector. This function assumes that the vector isn't empty.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#first">first</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#constLast">constLast</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn last_mut(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_last(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit& QVector<Qt3DRender::QRayCasterHit>::last() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#last-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn last(&self) -> ::cpp_core::Ref<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_last1(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut crate::QRayCasterHit)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRayCasterHit>::length() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#length">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Same as <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>().</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#count-1">count</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#length">QList::length</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn length(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_length(
            self as *const crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit> QVector<Qt3DRender::QRayCasterHit>::mid(int pos, int len = …) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn mid_2a(
        &self,
        pos: ::std::os::raw::c_int,
        len: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_mid(
                self as *const crate::QVectorOfQRayCasterHit,
                pos,
                len,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit> QVector<Qt3DRender::QRayCasterHit>::mid(int pos) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#mid">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a sub-vector which contains elements from this vector, starting at position <i>pos</i>. If <i>length</i> is -1 (the default), all elements after <i>pos</i> are included; otherwise <i>length</i> elements (or all remaining elements if there are less than <i>length</i> elements) are included.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn mid_1a(
        &self,
        pos: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_mid1(
                self as *const crate::QVectorOfQRayCasterHit,
                pos,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::move(int from, int to)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#move">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Moves the item at index position <i>from</i> to index position <i>to</i>.</p>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.6.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qlist.html#move">QList::move</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn move_(&self, from: ::std::os::raw::c_int, to: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_move(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            from,
            to,
        )
    }

    /// <p>Constructs an empty vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRayCasterHit>::QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs an empty vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_QVector() };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRayCasterHit>::QVector(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements.</p>
    /// <p>The elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        size: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_QVector1(size) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRayCasterHit>::QVector(int size, const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-2">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a vector with an initial size of <i>size</i> elements. Each element is initialized with <i>value</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_2a(
        size: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_QVector2(
                size,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                    .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Constructs a copy of <i>other</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void QVector<Qt3DRender::QRayCasterHit>::QVector(const QVector<Qt3DRender::QRayCasterHit>& v)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#QVector-3">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Constructs a copy of <i>other</i>.</p>
    /// <p>This operation takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">constant time</a>, because <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> is <a href="http://doc.qt.io/qt-5/implicit-sharing.html">implicitly shared</a>. This makes returning a <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes <a href="http://doc.qt.io/qt-5/containers.html#algorithmic-complexity">linear time</a>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-eq">operator=</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_copy(
        v: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_QVector3(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(
                    v,
                )
                .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::pop_back()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn pop_back(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_pop_back(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::pop_front()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#pop_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn pop_front(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_pop_front(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Inserts <i>value</i> at the beginning of the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::prepend(const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#prepend">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Inserts <i>value</i> at the beginning of the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></span><span class="operator">&gt;</span> vector;
    ///   vector<span class="operator">.</span>prepend(<span class="string">"one"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"two"</span>);
    ///   vector<span class="operator">.</span>prepend(<span class="string">"three"</span>);
    ///   <span class="comment">// vector: ["three", "two", "one"]</span>
    ///
    /// </pre>
    /// <p>This is the same as vector.insert(0, <i>value</i>).</p>
    /// <p>For large vectors, this operation can be slow (<a href="http://doc.qt.io/qt-5/containers.html#linear-time">linear time</a>), because it requires moving all the items in the vector by one position further in memory. If you want a container class that provides a fast prepend() function, use <a href="http://doc.qt.io/qt-5/qlist.html">QList</a> or <a href="http://doc.qt.io/qt-5/qlinkedlist.html">QLinkedList</a> instead.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn prepend(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_prepend(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::push_back(const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_back">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to append(<i>value</i>).</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn push_back(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_push_back(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::push_front(const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#push_front">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to prepend(<i>value</i>).</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn push_front(
        &self,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_push_front(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::remove(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes the element at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn remove_1a(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_remove(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            i,
        )
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::remove(int i, int n)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#remove-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>Removes <i>count</i> elements from the middle of the vector, starting at index position <i>i</i>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#insert">insert</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#replace">replace</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#fill">fill</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn remove_2a(&self, i: ::std::os::raw::c_int, n: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_remove1(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            i,
            n,
        )
    }

    /// <p>Removes the element at index position <i>i</i>. Equivalent to</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::removeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i>. Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   remove(i);
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>() and <a href="http://doc.qt.io/qt-5/qlist.html#removeAt">QList::removeAt</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn remove_at(&self, i: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_removeAt(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            i,
        )
    }

    /// <p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::removeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector. Calling this function is equivalent to calling remove(0). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn remove_first(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_removeFirst(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::removeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the vector. Calling this function is equivalent to calling remove(<a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>() - 1). The vector must not be empty. If the vector can be empty, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>(), and <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn remove_last(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_removeLast(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::replace(int i, const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#replace">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Replaces the item at index position <i>i</i> with <i>value</i>.</p>
    /// <p><i>i</i> must be a valid index position in the vector (i.e., 0 &lt;= <i>i</i> &lt; <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>()).</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#remove">remove</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn replace(
        &self,
        i: ::std::os::raw::c_int,
        t: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_replace(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            i,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(t)
                .as_raw_ptr(),
        )
    }

    /// <p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::reserve(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#reserve">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Attempts to allocate memory for at least <i>size</i> elements. If you know in advance how large the vector will be, you should call this function to prevent reallocations and memory fragmentation.</p>
    /// <p>If <i>size</i> is an underestimate, the worst that will happen is that the <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> will be a bit slower. If <i>size</i> is an overestimate, you may have used more memory than the normal <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a> growth strategy would have allocated—or you may have used less.</p>
    /// <p>An alternative to reserve() is calling <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>(). Whether or not that is faster than reserve() depends on the element type, because <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() default-constructs all elements, and requires assignment to existing entries rather than calling <a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>(), which copy- or move-constructs. For simple types, like <code>int</code> or <code>double</code>, <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() is typically faster, but for anything more complex, you should prefer reserve().</p>
    /// <p><b>Warning:</b> If the size passed to <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>() was underestimated, you run out of allocated space and into undefined behavior. This problem does not exist with reserve(), because it treats the size as just a hint.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn reserve(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_reserve(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            size,
        )
    }

    /// <p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::resize(int size)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#resize">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Sets the size of the vector to <i>size</i>. If <i>size</i> is greater than the current size, elements are added to the end; the new elements are initialized with a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If <i>size</i> is less than the current size, elements are removed from the end.</p>
    /// <p>Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn resize(&self, size: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_resize(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            size,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::setSharable(bool sharable)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_sharable(&self, sharable: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_setSharable(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            sharable,
        )
    }

    /// <p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::shrink_to_fit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#shrink_to_fit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This function is provided for STL compatibility. It is equivalent to <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">squeeze</a>().</p>
    /// <p>This function was introduced in  Qt 5.10.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn shrink_to_fit(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_shrink_to_fit(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRayCasterHit>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn size(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_size(
            self as *const crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Releases any memory not required to store the items.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::squeeze()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#squeeze">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Releases any memory not required to store the items.</p>
    /// <p>The sole purpose of this function is to provide a means of fine tuning <a href="http://doc.qt.io/qt-5/qvector.html">QVector</a>'s memory usage. In general, you will rarely ever need to call this function.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#reserve">reserve</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#capacity">capacity</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn squeeze(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_squeeze(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::swap(QVector<Qt3DRender::QRayCasterHit>& other)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swap">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Swaps vector <i>other</i> with this vector. This operation is very fast and never fails.</p>
    /// <p>This function was introduced in  Qt 4.8.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_swap(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QVectorOfQRayCasterHit,
        )
    }

    /// <p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void QVector<Qt3DRender::QRayCasterHit>::swapItemsAt(int i, int j)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#swapItemsAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Exchange the item at index position <i>i</i> with the item at index position <i>j</i>. This function assumes that both <i>i</i> and <i>j</i> are at least 0 but less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>(). To avoid failure, test that both <i>i</i> and <i>j</i> are at least 0 and less than <a href="http://doc.qt.io/qt-5/qvector.html#size">size</a>().</p>
    /// <p>This function was introduced in  Qt 5.14.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap_items_at(&self, i: ::std::os::raw::c_int, j: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_swapItemsAt(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            i,
            j,
        )
    }

    /// <p>Removes the element at index position <i>i</i> and returns it.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit QVector<Qt3DRender::QRayCasterHit>::takeAt(int i)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeAt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the element at index position <i>i</i> and returns it.</p>
    /// <p>Equivalent to</p>
    /// <pre class="cpp">
    ///
    ///   T t <span class="operator">=</span> at(i);
    ///   remove(i);
    ///   <span class="keyword">return</span> t;
    ///
    /// </pre>
    /// <p>Provided for compatibility with <a href="http://doc.qt.io/qt-5/qlist.html">QList</a>.</p>
    /// <p>This function was introduced in  Qt 5.2.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>(), <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>(), and <a href="http://doc.qt.io/qt-5/qlist.html#takeAt">QList::takeAt</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn take_at(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_takeAt(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
                i,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit QVector<Qt3DRender::QRayCasterHit>::takeFirst()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the first item in the vector and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeLast">takeLast</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeFirst">removeFirst</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn take_first(&self) -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_takeFirst(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit QVector<Qt3DRender::QRayCasterHit>::takeLast()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#takeLast">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Removes the last item in the list and returns it. This function assumes the vector is not empty. To avoid failure, call <a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() before calling this function.</p>
    /// <p>If you don't use the return value, <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>() is more efficient.</p>
    /// <p>This function was introduced in  Qt 5.1.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#takeFirst">takeFirst</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#removeLast">removeLast</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn take_last(&self) -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_takeLast(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Returns the value at index position <i>i</i> in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit QVector<Qt3DRender::QRayCasterHit>::value(int i) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the value at index position <i>i</i> in the vector.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns a <a href="http://doc.qt.io/qt-5/containers.html#default-constructed-value">default-constructed value</a>. If you are certain that <i>i</i> is within bounds, you can use <a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() instead, which is slightly faster.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#at">at</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn value_1a(
        &self,
        i: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_value(
                self as *const crate::QVectorOfQRayCasterHit,
                i,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit QVector<Qt3DRender::QRayCasterHit>::value(int i, const Qt3DRender::QRayCasterHit& defaultValue) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#value-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p>
    /// <p>If the index <i>i</i> is out of bounds, the function returns <i>defaultValue</i>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0",
            cpp_lib_version = "5.14.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn value_2a(
        &self,
        i: ::std::os::raw::c_int,
        default_value: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QRayCasterHit>>,
    ) -> ::cpp_core::CppBox<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_value1(
                self as *const crate::QVectorOfQRayCasterHit,
                i,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QRayCasterHit>>::cast_into(
                    default_value,
                )
                .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_set_fence {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QSetFence```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QSetFence::HandleType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct HandleType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for HandleType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            HandleType(value)
        }
    }

    impl From<HandleType> for ::std::os::raw::c_int {
        fn from(value: HandleType) -> Self {
            value.0
        }
    }

    impl HandleType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl HandleType {
        /// C++ enum variant: <span style='color: green;'>```NoHandle = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoHandle: crate::q_set_fence::HandleType = crate::q_set_fence::HandleType(0);
        /// C++ enum variant: <span style='color: green;'>```OpenGLFenceId = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const OpenGLFenceId: crate::q_set_fence::HandleType = crate::q_set_fence::HandleType(1);
    }
}
/// <p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QSetFence```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
/// <p>QSetFence is a FrameGraph node that inserts a fence into the command stream. It can then be used in conjunction with <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html">QWaitFence</a> or by extracting the underlying handle.</p>
/// <p>The handle property will be updated once the renderer has created the underlying fence resource. The handle will remain valid as long as it remains in the unsignaled state. Once it has reached the signaled state, it will be destroyed and a new handle will be created. That means that depending on how long it takes for the fence to be signaled, the same handle could be used over several frames.</p></div>
#[repr(C)]
pub struct QSetFence {
    _unused: u8,
}
impl QSetFence {
    /// <p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSetFence::handleTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html#handleType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QSetFence::HandleType </td><td class="memItemRight bottomAlign"><span class="name"><b>handleType</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleTypeChanged</b></span>(Qt3DRender::QSetFence::HandleType <i>handleType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn handle_type_changed(&self) -> ::qt_core::Signal<(crate::q_set_fence::HandleType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2handleTypeChanged(Qt3DRender::QSetFence::HandleType)\0",
                ),
            )
        }
    }

    /// <p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSetFence::handleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html#handle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>handle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleChanged</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn handle_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QVariant,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2handleChanged(QVariant)\0"),
            )
        }
    }

    /// <p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant Qt3DRender::QSetFence::handle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html#handle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>handle</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleChanged</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_handle(
                self as *const crate::QSetFence,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSetFence::HandleType Qt3DRender::QSetFence::handleType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html#handleType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QSetFence::HandleType </td><td class="memItemRight bottomAlign"><span class="name"><b>handleType</b></span>() const</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleTypeChanged</b></span>(Qt3DRender::QSetFence::HandleType <i>handleType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle_type(&self) -> crate::q_set_fence::HandleType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_handleType(
            self as *const crate::QSetFence,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QSetFence::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_metaObject(
                self as *const crate::QSetFence,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSetFence::QSetFence(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QSetFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_QSetFence(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSetFence::QSetFence()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
    /// <p>QSetFence is a FrameGraph node that inserts a fence into the command stream. It can then be used in conjunction with <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html">QWaitFence</a> or by extracting the underlying handle.</p>
    /// <p>The handle property will be updated once the renderer has created the underlying fence resource. The handle will remain valid as long as it remains in the unsignaled state. Once it has reached the signaled state, it will be destroyed and a new handle will be created. That means that depending on how long it takes for the fence to be signaled, the same handle could be used over several frames.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QSetFence> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_QSetFence1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QSetFence::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_qt_metacall(
            self as *const crate::QSetFence as *mut crate::QSetFence,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QSetFence::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_qt_metacast(
            self as *const crate::QSetFence as *mut crate::QSetFence,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSetFence::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSetFence::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>Depending on the rendering mode used by Qt 3D, the shared context will either be:</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QSharedGLTexture```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qsharedgltexture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Depending on the rendering mode used by Qt 3D, the shared context will either be:</p>
/// <ul>
/// <li>qt_gl_global_share_context when letting Qt 3D drive the rendering. When setting the attribute <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_ShareOpenGLContexts</a> on the QApplication class, this will automatically make QOpenGLWidget instances have their context shared with qt_gl_global_share_context.</li>
/// <li>the shared context from the <a href="http://doc.qt.io/qt-5/qtquick-qmlmodule.html">QtQuick</a> scene. You might have to subclass <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> or use QtQuickRenderControl to have control over what that shared context is though as of 5.13 it is qt_gl_global_share_context.</li>
/// </ul>
/// <p>Any 3rd party engine that shares its context with the Qt 3D renderer can now provide texture ids that will be referenced by the Qt 3D texture.</p>
/// <p>You can omit specifying the texture properties, Qt 3D will try at runtime to determine what they are. If you know them, you can of course provide them, avoid additional work for Qt 3D.</p>
/// <p>Keep in mind that if you are using custom materials and shaders, you need to specify the correct sampler type to be used.</p></div>
#[repr(C)]
pub struct QSharedGLTexture {
    _unused: u8,
}
impl QSharedGLTexture {
    /// <p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QSharedGLTexture::setTextureId` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsharedgltexture.html#textureId-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>textureId</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTextureId</b></span>(int <i>id</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureIdChanged</b></span>(int <i>textureId</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn slot_set_texture_id(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setTextureId(int)\0"),
            )
        }
    }

    /// <p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSharedGLTexture::textureIdChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsharedgltexture.html#textureId-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>textureId</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTextureId</b></span>(int <i>id</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureIdChanged</b></span>(int <i>textureId</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn texture_id_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2textureIdChanged(int)\0"),
            )
        }
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QSharedGLTexture::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_metaObject(
                self as *const crate::QSharedGLTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSharedGLTexture::QSharedGLTexture(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QSharedGLTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_QSharedGLTexture(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Depending on the rendering mode used by Qt 3D, the shared context will either be:</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSharedGLTexture::QSharedGLTexture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsharedgltexture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Depending on the rendering mode used by Qt 3D, the shared context will either be:</p>
    /// <ul>
    /// <li>qt_gl_global_share_context when letting Qt 3D drive the rendering. When setting the attribute <a href="http://doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum">Qt::AA_ShareOpenGLContexts</a> on the QApplication class, this will automatically make QOpenGLWidget instances have their context shared with qt_gl_global_share_context.</li>
    /// <li>the shared context from the <a href="http://doc.qt.io/qt-5/qtquick-qmlmodule.html">QtQuick</a> scene. You might have to subclass <a href="http://doc.qt.io/qt-5/qwindow.html">QWindow</a> or use QtQuickRenderControl to have control over what that shared context is though as of 5.13 it is qt_gl_global_share_context.</li>
    /// </ul>
    /// <p>Any 3rd party engine that shares its context with the Qt 3D renderer can now provide texture ids that will be referenced by the Qt 3D texture.</p>
    /// <p>You can omit specifying the texture properties, Qt 3D will try at runtime to determine what they are. If you know them, you can of course provide them, avoid additional work for Qt 3D.</p>
    /// <p>Keep in mind that if you are using custom materials and shaders, you need to specify the correct sampler type to be used.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QSharedGLTexture> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_QSharedGLTexture1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QSharedGLTexture::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_qt_metacall(
            self as *const crate::QSharedGLTexture as *mut crate::QSharedGLTexture,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QSharedGLTexture::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_qt_metacast(
            self as *const crate::QSharedGLTexture as *mut crate::QSharedGLTexture,
            arg1,
        )
    }

    /// <p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QSharedGLTexture::setTextureId(int id)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsharedgltexture.html#textureId-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>textureId</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTextureId</b></span>(int <i>id</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureIdChanged</b></span>(int <i>textureId</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_texture_id(&self, id: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_setTextureId(
            self as *const crate::QSharedGLTexture as *mut crate::QSharedGLTexture,
            id,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QSharedGLTexture::textureId() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsharedgltexture.html#textureId-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The OpenGL texture id value that you want Qt3D to gain access to.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>textureId</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTextureId</b></span>(int <i>id</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>textureIdChanged</b></span>(int <i>textureId</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn texture_id(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_textureId(
            self as *const crate::QSharedGLTexture,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSharedGLTexture::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSharedGLTexture::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_wait_fence {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QWaitFence```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QWaitFence::HandleType```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct HandleType(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for HandleType {
        fn from(value: ::std::os::raw::c_int) -> Self {
            HandleType(value)
        }
    }

    impl From<HandleType> for ::std::os::raw::c_int {
        fn from(value: HandleType) -> Self {
            value.0
        }
    }

    impl HandleType {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl HandleType {
        /// C++ enum variant: <span style='color: green;'>```NoHandle = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoHandle: crate::q_wait_fence::HandleType = crate::q_wait_fence::HandleType(0);
        /// C++ enum variant: <span style='color: green;'>```OpenGLFenceId = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const OpenGLFenceId: crate::q_wait_fence::HandleType =
            crate::q_wait_fence::HandleType(1);
    }
}
/// <p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QWaitFence```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
/// <p>QWaitFence is a FrameGraph node that will force to wait for it to become signaled before subsequent commands are inserted into the command stream. It can then be used in conjunction with <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html">QSetFence</a> and contains properties to configure how long it should wait and whether it should block on the CPU side.</p>
/// <p><b>Note: </b>Qt 3D uploads GPU resources (Texture, Shaders, Buffers) before issuing draw calls.</p></div>
#[repr(C)]
pub struct QWaitFence {
    _unused: u8,
}
impl QWaitFence {
    /// <p>Specifies whether the CPU should be block while waiting for the fence to become signaled. This is false by default.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QWaitFence::waitOnCPUChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#waitOnCPU-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies whether the CPU should be block while waiting for the fence to become signaled. This is false by default.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>waitOnCPU</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWaitOnCPU</b></span>(bool <i>waitOnCPU</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>waitOnCPUChanged</b></span>(bool <i>waitOnCPU</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn wait_on_c_p_u_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2waitOnCPUChanged(bool)\0"),
            )
        }
    }

    /// <p>Specifies the maximum amount of time in nanoseconds to wait for the fence to become signaled.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QWaitFence::timeoutChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#timeout-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the maximum amount of time in nanoseconds to wait for the fence to become signaled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> quint64 </td><td class="memItemRight bottomAlign"><span class="name"><b>timeout</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTimeout</b></span>(quint64 <i>timeout</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>timeoutChanged</b></span>(quint64 <i>timeoutChanged</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn timeout_changed(&self) -> ::qt_core::Signal<(u64,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2timeoutChanged(quint64)\0"),
            )
        }
    }

    /// <p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QWaitFence::handleTypeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#handleType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QWaitFence::HandleType </td><td class="memItemRight bottomAlign"><span class="name"><b>handleType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHandleType</b></span>(Qt3DRender::QWaitFence::HandleType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleTypeChanged</b></span>(Qt3DRender::QWaitFence::HandleType <i>handleType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn handle_type_changed(&self) -> ::qt_core::Signal<(crate::q_wait_fence::HandleType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2handleTypeChanged(Qt3DRender::QWaitFence::HandleType)\0",
                ),
            )
        }
    }

    /// <p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QWaitFence::handleChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#handle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>handle</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHandle</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleChanged</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn handle_changed(&self) -> ::qt_core::Signal<(*const ::qt_core::QVariant,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2handleChanged(QVariant)\0"),
            )
        }
    }

    /// <p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVariant Qt3DRender::QWaitFence::handle() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#handle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>handle</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHandle</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleChanged</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle(&self) -> ::cpp_core::CppBox<::qt_core::QVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_handle(
                self as *const crate::QWaitFence,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QWaitFence::HandleType Qt3DRender::QWaitFence::handleType() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#handleType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QWaitFence::HandleType </td><td class="memItemRight bottomAlign"><span class="name"><b>handleType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHandleType</b></span>(Qt3DRender::QWaitFence::HandleType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleTypeChanged</b></span>(Qt3DRender::QWaitFence::HandleType <i>handleType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn handle_type(&self) -> crate::q_wait_fence::HandleType {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_handleType(
            self as *const crate::QWaitFence,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QWaitFence::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_metaObject(
                self as *const crate::QWaitFence,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QWaitFence::QWaitFence(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QWaitFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_QWaitFence(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QWaitFence::QWaitFence()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Fence allow to synchronosize GPU and CPU workloads. GPU commands usually are non-blocking. When issued, commands are inserted in command buffers which will be read at a later time by the GPU. In some cases, you want to continue processing or issue specific command only when you are sure a command has been executed by the hardware. Fences are a way to do so. This is especially important when using 3rd party engines with Qt3D, Qt3D should only access shared resources when we know the other engine command are done modifying the resource.</p>
    /// <p>QWaitFence is a FrameGraph node that will force to wait for it to become signaled before subsequent commands are inserted into the command stream. It can then be used in conjunction with <a href="http://doc.qt.io/qt-5/qt3drender-qsetfence.html">QSetFence</a> and contains properties to configure how long it should wait and whether it should block on the CPU side.</p>
    /// <p><b>Note: </b>Qt 3D uploads GPU resources (Texture, Shaders, Buffers) before issuing draw calls.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QWaitFence> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_QWaitFence1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QWaitFence::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_qt_metacall(
            self as *const crate::QWaitFence as *mut crate::QWaitFence,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QWaitFence::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_qt_metacast(
            self as *const crate::QWaitFence as *mut crate::QWaitFence,
            arg1,
        )
    }

    /// <p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QWaitFence::setHandle(QVariant handle)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#handle-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the underlying fence handle wrapped in a <a href="http://doc.qt.io/qt-5/qvariant.html">QVariant</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QVariant </td><td class="memItemRight bottomAlign"><span class="name"><b>handle</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHandle</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleChanged</b></span>(QVariant <i>handle</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_handle(
        &self,
        handle: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_setHandle(
            self as *const crate::QWaitFence as *mut crate::QWaitFence,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(handle)
                .as_raw_ptr(),
        )
    }

    /// <p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QWaitFence::setHandleType(Qt3DRender::QWaitFence::HandleType type)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#handleType-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of handle being used. Currently only OpenGL Fence ids are supported.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QWaitFence::HandleType </td><td class="memItemRight bottomAlign"><span class="name"><b>handleType</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setHandleType</b></span>(Qt3DRender::QWaitFence::HandleType <i>type</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>handleTypeChanged</b></span>(Qt3DRender::QWaitFence::HandleType <i>handleType</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_handle_type(&self, type_: crate::q_wait_fence::HandleType) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_setHandleType(
            self as *const crate::QWaitFence as *mut crate::QWaitFence,
            type_,
        )
    }

    /// <p>Specifies the maximum amount of time in nanoseconds to wait for the fence to become signaled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QWaitFence::setTimeout(quint64 timeout)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#timeout-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the maximum amount of time in nanoseconds to wait for the fence to become signaled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> quint64 </td><td class="memItemRight bottomAlign"><span class="name"><b>timeout</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTimeout</b></span>(quint64 <i>timeout</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>timeoutChanged</b></span>(quint64 <i>timeoutChanged</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_timeout(&self, timeout: u64) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_setTimeout(
            self as *const crate::QWaitFence as *mut crate::QWaitFence,
            timeout,
        )
    }

    /// <p>Specifies whether the CPU should be block while waiting for the fence to become signaled. This is false by default.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QWaitFence::setWaitOnCPU(bool waitOnCPU)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#waitOnCPU-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies whether the CPU should be block while waiting for the fence to become signaled. This is false by default.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>waitOnCPU</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWaitOnCPU</b></span>(bool <i>waitOnCPU</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>waitOnCPUChanged</b></span>(bool <i>waitOnCPU</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set_wait_on_c_p_u(&self, wait_on_c_p_u: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_setWaitOnCPU(
            self as *const crate::QWaitFence as *mut crate::QWaitFence,
            wait_on_c_p_u,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// <p>Specifies the maximum amount of time in nanoseconds to wait for the fence to become signaled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```quint64 Qt3DRender::QWaitFence::timeout() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#timeout-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the maximum amount of time in nanoseconds to wait for the fence to become signaled.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> quint64 </td><td class="memItemRight bottomAlign"><span class="name"><b>timeout</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setTimeout</b></span>(quint64 <i>timeout</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>timeoutChanged</b></span>(quint64 <i>timeoutChanged</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn timeout(&self) -> u64 {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_timeout(
            self as *const crate::QWaitFence,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QWaitFence::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QWaitFence::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// <p>Specifies whether the CPU should be block while waiting for the fence to become signaled. This is false by default.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QWaitFence::waitOnCPU() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qwaitfence.html#waitOnCPU-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies whether the CPU should be block while waiting for the fence to become signaled. This is false by default.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>waitOnCPU</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setWaitOnCPU</b></span>(bool <i>waitOnCPU</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>waitOnCPUChanged</b></span>(bool <i>waitOnCPU</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn wait_on_c_p_u(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_waitOnCPU(
            self as *const crate::QWaitFence,
        )
    }
}

/// <p>By default, OpenGL writes scene depth information into the depth buffer in the range [0.0, 1.0] with 0.0 corresponding to the near clip plane and 1.0 to the far clip plane. QDepthRange allows mapping these values into a different range so parts of the scene are always rendered in front of or behind other parts. Valid values for near and far are between 0 and 1.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QDepthRange```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>By default, OpenGL writes scene depth information into the depth buffer in the range [0.0, 1.0] with 0.0 corresponding to the near clip plane and 1.0 to the far clip plane. QDepthRange allows mapping these values into a different range so parts of the scene are always rendered in front of or behind other parts. Valid values for near and far are between 0 and 1.</p></div>
#[repr(C)]
pub struct QDepthRange {
    _unused: u8,
}
impl QDepthRange {
    /// <p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QDepthRange::setNearValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#nearValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNearValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValueChanged</b></span>(double <i>nearValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_near_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setNearValue(double)\0"),
            )
        }
    }

    /// <p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QDepthRange::setFarValue` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#farValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>farValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFarValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farValueChanged</b></span>(double <i>farValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_far_value(&self) -> ::qt_core::Receiver<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setFarValue(double)\0"),
            )
        }
    }

    /// <p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QDepthRange::nearValueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#nearValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNearValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValueChanged</b></span>(double <i>nearValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn near_value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2nearValueChanged(double)\0"),
            )
        }
    }

    /// <p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QDepthRange::farValueChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#farValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>farValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFarValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farValueChanged</b></span>(double <i>farValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn far_value_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_double,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2farValueChanged(double)\0"),
            )
        }
    }

    /// <p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double Qt3DRender::QDepthRange::farValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#farValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>farValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFarValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farValueChanged</b></span>(double <i>farValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn far_value(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_farValue(
            self as *const crate::QDepthRange,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QDepthRange::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_metaObject(
                self as *const crate::QDepthRange,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```double Qt3DRender::QDepthRange::nearValue() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#nearValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNearValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValueChanged</b></span>(double <i>nearValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn near_value(&self) -> ::std::os::raw::c_double {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_nearValue(
            self as *const crate::QDepthRange,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDepthRange::QDepthRange(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QDepthRange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_QDepthRange(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>By default, OpenGL writes scene depth information into the depth buffer in the range [0.0, 1.0] with 0.0 corresponding to the near clip plane and 1.0 to the far clip plane. QDepthRange allows mapping these values into a different range so parts of the scene are always rendered in front of or behind other parts. Valid values for near and far are between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QDepthRange::QDepthRange()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>By default, OpenGL writes scene depth information into the depth buffer in the range [0.0, 1.0] with 0.0 corresponding to the near clip plane and 1.0 to the far clip plane. QDepthRange allows mapping these values into a different range so parts of the scene are always rendered in front of or behind other parts. Valid values for near and far are between 0 and 1.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QDepthRange> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_QDepthRange1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QDepthRange::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_qt_metacall(
            self as *const crate::QDepthRange as *mut crate::QDepthRange,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QDepthRange::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_qt_metacast(
            self as *const crate::QDepthRange as *mut crate::QDepthRange,
            arg1,
        )
    }

    /// <p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QDepthRange::setFarValue(double value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#farValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the far clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>farValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFarValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>farValueChanged</b></span>(double <i>farValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_far_value(&self, value: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_setFarValue(
            self as *const crate::QDepthRange as *mut crate::QDepthRange,
            value,
        )
    }

    /// <p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QDepthRange::setNearValue(double value)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qdepthrange.html#nearValue-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The depth buffer value corresponding to the near clip plane. Valid values for are between 0 and 1.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> double </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValue</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setNearValue</b></span>(double <i>value</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>nearValueChanged</b></span>(double <i>nearValue</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_near_value(&self, value: ::std::os::raw::c_double) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_setNearValue(
            self as *const crate::QDepthRange as *mut crate::QDepthRange,
            value,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDepthRange::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QDepthRange::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>When disabled, a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> node won't prevent picking from being performed. Toggling the enabled property is therefore a way to make a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> active or inactive.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QNoPicking```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When disabled, a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> node won't prevent picking from being performed. Toggling the enabled property is therefore a way to make a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> active or inactive.</p>
/// <p>When using multiple subviewports in the FrameGraph, QNoPicking can be useful to prevent picking conflicts between overlapping viewports or non visual ones. It can also be used as an optimization to prevent unnecessary work for hidden viewports or for sections of the scenes which don't require any picking.</p>
/// <pre class="cpp">
///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span> <span class="operator">*</span>viewport <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span>();
///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span> <span class="operator">*</span>cameraSelector <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span>(viewport);
///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type">QNoPicking</span> <span class="operator">*</span>noPicking <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type">QNoPicking</span>(cameraSelector);
///
///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span> <span class="operator">*</span>clearBuffers <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span>(noPicking);
///   clearBuffers<span class="operator">-</span><span class="operator">&gt;</span>setBuffers(<span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span><span class="operator">::</span>ColorDepthBuffer);
///
///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>mainPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>previewPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
///
/// </pre></div>
#[repr(C)]
pub struct QNoPicking {
    _unused: u8,
}
impl QNoPicking {
    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QNoPicking::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_metaObject(
                self as *const crate::QNoPicking,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QNoPicking::QNoPicking(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QNoPicking> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_QNoPicking(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>When disabled, a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> node won't prevent picking from being performed. Toggling the enabled property is therefore a way to make a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> active or inactive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QNoPicking::QNoPicking()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>When disabled, a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> node won't prevent picking from being performed. Toggling the enabled property is therefore a way to make a <a href="http://doc.qt.io/qt-5/qt3drender-qnopicking.html">Qt3DRender::QNoPicking</a> active or inactive.</p>
    /// <p>When using multiple subviewports in the FrameGraph, QNoPicking can be useful to prevent picking conflicts between overlapping viewports or non visual ones. It can also be used as an optimization to prevent unnecessary work for hidden viewports or for sections of the scenes which don't require any picking.</p>
    /// <pre class="cpp">
    ///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span> <span class="operator">*</span>viewport <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qviewport.html">QViewport</a></span>();
    ///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span> <span class="operator">*</span>cameraSelector <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qcameraselector.html">QCameraSelector</a></span>(viewport);
    ///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type">QNoPicking</span> <span class="operator">*</span>noPicking <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type">QNoPicking</span>(cameraSelector);
    ///
    ///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span> <span class="operator">*</span>clearBuffers <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span>(noPicking);
    ///   clearBuffers<span class="operator">-</span><span class="operator">&gt;</span>setBuffers(<span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qclearbuffers.html">QClearBuffers</a></span><span class="operator">::</span>ColorDepthBuffer);
    ///
    ///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>mainPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///   <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span> <span class="operator">*</span>previewPass <span class="operator">=</span> <span class="keyword">new</span> <span class="type">Qt3DRender</span><span class="operator">::</span><span class="type"><a href="http://doc.qt.io/qt-5/qt3drender-qrenderpassfilter.html">QRenderPassFilter</a></span>(cameraSelector);
    ///   <span class="operator">.</span><span class="operator">.</span><span class="operator">.</span><span class="operator">.</span>
    ///
    /// </pre></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QNoPicking> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_QNoPicking1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QNoPicking::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_qt_metacall(
            self as *const crate::QNoPicking as *mut crate::QNoPicking,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QNoPicking::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_qt_metacast(
            self as *const crate::QNoPicking as *mut crate::QNoPicking,
            arg1,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QNoPicking::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QNoPicking::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_raster_mode {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QRasterMode```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QRasterMode::RasterMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct RasterMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for RasterMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            RasterMode(value)
        }
    }

    impl From<RasterMode> for ::std::os::raw::c_int {
        fn from(value: RasterMode) -> Self {
            value.0
        }
    }

    impl RasterMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl RasterMode {
        /// C++ enum variant: <span style='color: green;'>```Points = 6912```</span>
        #[allow(non_upper_case_globals)]
        pub const Points: crate::q_raster_mode::RasterMode = crate::q_raster_mode::RasterMode(6912);
        /// C++ enum variant: <span style='color: green;'>```Lines = 6913```</span>
        #[allow(non_upper_case_globals)]
        pub const Lines: crate::q_raster_mode::RasterMode = crate::q_raster_mode::RasterMode(6913);
        /// C++ enum variant: <span style='color: green;'>```Fill = 6914```</span>
        #[allow(non_upper_case_globals)]
        pub const Fill: crate::q_raster_mode::RasterMode = crate::q_raster_mode::RasterMode(6914);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QRasterMode::FaceMode```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct FaceMode(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for FaceMode {
        fn from(value: ::std::os::raw::c_int) -> Self {
            FaceMode(value)
        }
    }

    impl From<FaceMode> for ::std::os::raw::c_int {
        fn from(value: FaceMode) -> Self {
            value.0
        }
    }

    impl FaceMode {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl FaceMode {
        /// C++ enum variant: <span style='color: green;'>```Front = 1028```</span>
        #[allow(non_upper_case_globals)]
        pub const Front: crate::q_raster_mode::FaceMode = crate::q_raster_mode::FaceMode(1028);
        /// C++ enum variant: <span style='color: green;'>```Back = 1029```</span>
        #[allow(non_upper_case_globals)]
        pub const Back: crate::q_raster_mode::FaceMode = crate::q_raster_mode::FaceMode(1029);
        /// C++ enum variant: <span style='color: green;'>```FrontAndBack = 1032```</span>
        #[allow(non_upper_case_globals)]
        pub const FrontAndBack: crate::q_raster_mode::FaceMode =
            crate::q_raster_mode::FaceMode(1032);
    }
}
/// <p>The QRasterMode class is used to control the rasterization step of the primitives at render time. This can be used to choose whether we only want to show points, edges or fill a primitive.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QRasterMode```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The QRasterMode class is used to control the rasterization step of the primitives at render time. This can be used to choose whether we only want to show points, edges or fill a primitive.</p>
/// <p><b>Note: </b>This is not supported when rendering on OpenGL ES 2.0 platforms.</p></div>
#[repr(C)]
pub struct QRasterMode {
    _unused: u8,
}
impl QRasterMode {
    /// <p>Holds the raster mode to be used.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRasterMode::setRasterMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#rasterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the raster mode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::RasterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRasterMode</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterModeChanged</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_raster_mode(&self) -> ::qt_core::Receiver<(crate::q_raster_mode::RasterMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setRasterMode(Qt3DRender::QRasterMode::RasterMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QRasterMode::setFaceMode` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::FaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceMode</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_face_mode(&self) -> ::qt_core::Receiver<(crate::q_raster_mode::FaceMode,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFaceMode(Qt3DRender::QRasterMode::FaceMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the raster mode to be used.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRasterMode::rasterModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#rasterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the raster mode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::RasterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRasterMode</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterModeChanged</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn raster_mode_changed(&self) -> ::qt_core::Signal<(crate::q_raster_mode::RasterMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2rasterModeChanged(Qt3DRender::QRasterMode::RasterMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QRasterMode::faceModeChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::FaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceMode</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn face_mode_changed(&self) -> ::qt_core::Signal<(crate::q_raster_mode::FaceMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2faceModeChanged(Qt3DRender::QRasterMode::FaceMode)\0",
                ),
            )
        }
    }

    /// <p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode::FaceMode Qt3DRender::QRasterMode::faceMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::FaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceMode</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn face_mode(&self) -> crate::q_raster_mode::FaceMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_faceMode(
            self as *const crate::QRasterMode,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QRasterMode::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_metaObject(
                self as *const crate::QRasterMode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRasterMode::QRasterMode(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_QRasterMode(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>The QRasterMode class is used to control the rasterization step of the primitives at render time. This can be used to choose whether we only want to show points, edges or fill a primitive.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QRasterMode::QRasterMode()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The QRasterMode class is used to control the rasterization step of the primitives at render time. This can be used to choose whether we only want to show points, edges or fill a primitive.</p>
    /// <p><b>Note: </b>This is not supported when rendering on OpenGL ES 2.0 platforms.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QRasterMode> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_QRasterMode1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QRasterMode::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_qt_metacall(
            self as *const crate::QRasterMode as *mut crate::QRasterMode,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QRasterMode::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_qt_metacast(
            self as *const crate::QRasterMode as *mut crate::QRasterMode,
            arg1,
        )
    }

    /// <p>Holds the raster mode to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode::RasterMode Qt3DRender::QRasterMode::rasterMode() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#rasterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the raster mode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::RasterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRasterMode</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterModeChanged</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn raster_mode(&self) -> crate::q_raster_mode::RasterMode {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_rasterMode(
            self as *const crate::QRasterMode,
        )
    }

    /// <p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRasterMode::setFaceMode(Qt3DRender::QRasterMode::FaceMode faceMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#faceMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the face mode to be used. Controls on which face the raster mode is to be applied.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::FaceMode </td><td class="memItemRight bottomAlign"><span class="name"><b>faceMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFaceMode</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>faceModeChanged</b></span>(Qt3DRender::QRasterMode::FaceMode <i>faceMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_face_mode(&self, face_mode: crate::q_raster_mode::FaceMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_setFaceMode(
            self as *const crate::QRasterMode as *mut crate::QRasterMode,
            face_mode,
        )
    }

    /// <p>Holds the raster mode to be used.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QRasterMode::setRasterMode(Qt3DRender::QRasterMode::RasterMode rasterMode)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrastermode.html#rasterMode-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds the raster mode to be used.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QRasterMode::RasterMode </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterMode</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setRasterMode</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>rasterModeChanged</b></span>(Qt3DRender::QRasterMode::RasterMode <i>rasterMode</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_raster_mode(&self, raster_mode: crate::q_raster_mode::RasterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_setRasterMode(
            self as *const crate::QRasterMode as *mut crate::QRasterMode,
            raster_mode,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRasterMode::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QRasterMode::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_shader_image {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QShaderImage```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QShaderImage::Access```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Access(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Access {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Access(value)
        }
    }

    impl From<Access> for ::std::os::raw::c_int {
        fn from(value: Access) -> Self {
            value.0
        }
    }

    impl Access {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Access {
        /// C++ enum variant: <span style='color: green;'>```ReadOnly = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const ReadOnly: crate::q_shader_image::Access = crate::q_shader_image::Access(0);
        /// C++ enum variant: <span style='color: green;'>```WriteOnly = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const WriteOnly: crate::q_shader_image::Access = crate::q_shader_image::Access(1);
        /// C++ enum variant: <span style='color: green;'>```ReadWrite = 2```</span>
        #[allow(non_upper_case_globals)]
        pub const ReadWrite: crate::q_shader_image::Access = crate::q_shader_image::Access(2);
    }

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QShaderImage::ImageFormat```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct ImageFormat(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for ImageFormat {
        fn from(value: ::std::os::raw::c_int) -> Self {
            ImageFormat(value)
        }
    }

    impl From<ImageFormat> for ::std::os::raw::c_int {
        fn from(value: ImageFormat) -> Self {
            value.0
        }
    }

    impl ImageFormat {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl ImageFormat {
        /// C++ enum variant: <span style='color: green;'>```NoFormat = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const NoFormat: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(0);
        /// C++ enum variant: <span style='color: green;'>```Automatic = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const Automatic: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(1);
        /// C++ enum variant: <span style='color: green;'>```R8_UNorm = 33321```</span>
        #[allow(non_upper_case_globals)]
        pub const R8UNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33321);
        /// C++ enum variant: <span style='color: green;'>```RG8_UNorm = 33323```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8UNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33323);
        /// C++ enum variant: <span style='color: green;'>```RGBA8_UNorm = 32856```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8UNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(32856);
        /// C++ enum variant: <span style='color: green;'>```R16_UNorm = 33322```</span>
        #[allow(non_upper_case_globals)]
        pub const R16UNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33322);
        /// C++ enum variant: <span style='color: green;'>```RG16_UNorm = 33324```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16UNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33324);
        /// C++ enum variant: <span style='color: green;'>```RGBA16_UNorm = 32859```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16UNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(32859);
        /// C++ enum variant: <span style='color: green;'>```R8_SNorm = 36756```</span>
        #[allow(non_upper_case_globals)]
        pub const R8SNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36756);
        /// C++ enum variant: <span style='color: green;'>```RG8_SNorm = 36757```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8SNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36757);
        /// C++ enum variant: <span style='color: green;'>```RGBA8_SNorm = 36759```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8SNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36759);
        /// C++ enum variant: <span style='color: green;'>```R16_SNorm = 36760```</span>
        #[allow(non_upper_case_globals)]
        pub const R16SNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36760);
        /// C++ enum variant: <span style='color: green;'>```RG16_SNorm = 36761```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16SNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36761);
        /// C++ enum variant: <span style='color: green;'>```RGBA16_SNorm = 36763```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16SNorm: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36763);
        /// C++ enum variant: <span style='color: green;'>```R8U = 33330```</span>
        #[allow(non_upper_case_globals)]
        pub const R8U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33330);
        /// C++ enum variant: <span style='color: green;'>```RG8U = 33336```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33336);
        /// C++ enum variant: <span style='color: green;'>```RGBA8U = 36220```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36220);
        /// C++ enum variant: <span style='color: green;'>```R16U = 33332```</span>
        #[allow(non_upper_case_globals)]
        pub const R16U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33332);
        /// C++ enum variant: <span style='color: green;'>```RG16U = 33338```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33338);
        /// C++ enum variant: <span style='color: green;'>```RGBA16U = 36214```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36214);
        /// C++ enum variant: <span style='color: green;'>```R32U = 33334```</span>
        #[allow(non_upper_case_globals)]
        pub const R32U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33334);
        /// C++ enum variant: <span style='color: green;'>```RG32U = 33340```</span>
        #[allow(non_upper_case_globals)]
        pub const RG32U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33340);
        /// C++ enum variant: <span style='color: green;'>```RGBA32U = 36208```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA32U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36208);
        /// C++ enum variant: <span style='color: green;'>```R8I = 33329```</span>
        #[allow(non_upper_case_globals)]
        pub const R8I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33329);
        /// C++ enum variant: <span style='color: green;'>```RG8I = 33335```</span>
        #[allow(non_upper_case_globals)]
        pub const RG8I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33335);
        /// C++ enum variant: <span style='color: green;'>```RGBA8I = 36238```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA8I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36238);
        /// C++ enum variant: <span style='color: green;'>```R16I = 33331```</span>
        #[allow(non_upper_case_globals)]
        pub const R16I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33331);
        /// C++ enum variant: <span style='color: green;'>```RG16I = 33337```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33337);
        /// C++ enum variant: <span style='color: green;'>```RGBA16I = 36232```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36232);
        /// C++ enum variant: <span style='color: green;'>```R32I = 33333```</span>
        #[allow(non_upper_case_globals)]
        pub const R32I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33333);
        /// C++ enum variant: <span style='color: green;'>```RG32I = 33339```</span>
        #[allow(non_upper_case_globals)]
        pub const RG32I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33339);
        /// C++ enum variant: <span style='color: green;'>```RGBA32I = 36226```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA32I: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36226);
        /// C++ enum variant: <span style='color: green;'>```R16F = 33325```</span>
        #[allow(non_upper_case_globals)]
        pub const R16F: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33325);
        /// C++ enum variant: <span style='color: green;'>```RG16F = 33327```</span>
        #[allow(non_upper_case_globals)]
        pub const RG16F: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33327);
        /// C++ enum variant: <span style='color: green;'>```RGBA16F = 34842```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA16F: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(34842);
        /// C++ enum variant: <span style='color: green;'>```R32F = 33326```</span>
        #[allow(non_upper_case_globals)]
        pub const R32F: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33326);
        /// C++ enum variant: <span style='color: green;'>```RG32F = 33328```</span>
        #[allow(non_upper_case_globals)]
        pub const RG32F: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(33328);
        /// C++ enum variant: <span style='color: green;'>```RGBA32F = 34836```</span>
        #[allow(non_upper_case_globals)]
        pub const RGBA32F: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(34836);
        /// C++ enum variant: <span style='color: green;'>```RG11B10F = 35898```</span>
        #[allow(non_upper_case_globals)]
        pub const RG11B10F: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(35898);
        /// C++ enum variant: <span style='color: green;'>```RGB10A2 = 32857```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB10A2: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(32857);
        /// C++ enum variant: <span style='color: green;'>```RGB10A2U = 36975```</span>
        #[allow(non_upper_case_globals)]
        pub const RGB10A2U: crate::q_shader_image::ImageFormat =
            crate::q_shader_image::ImageFormat(36975);
    }
}
/// <p>To make the content of textures available for read and write operations in a shader, they need to exposed as QShaderImage. Textures can be composed of several mip levels, layers and faces. Additionally declaring a QShaderImage allows specifying which level, layer or face of the texture content we want to access.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QShaderImage```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>To make the content of textures available for read and write operations in a shader, they need to exposed as QShaderImage. Textures can be composed of several mip levels, layers and faces. Additionally declaring a QShaderImage allows specifying which level, layer or face of the texture content we want to access.</p>
/// <p>QShaderImage has to be assigned as a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a>'s value and reference a valid <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">Qt3DRender::QAbstractTexture</a> to work properly.</p>
/// <p>If the referenced texture is a one-dimensional array, two-dimensional array, three-dimensional, cube map, cube map array, or two-dimensional multisample array texture, it is possible to bind either the entire texture level or a single layer or face of the texture level. This can be controlled with the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layered-prop">layered</a> property.</p>
/// <p>Support for QShaderImage is only supported with OpenGL 4 and partially with OpenGL ES 3.1 and 3.2.</p>
/// <p>OpenGL 4 supports the following image types:</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>GLSL Type</th><th>OpenGL Type Enum</th><th>Texture Type</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td>image1D</td><td>GL_IMAGE_1D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">QTexture1D</a></td></tr>
/// <tr valign="top" class="even"><td>image2D</td><td>GL_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
/// <tr valign="top" class="odd"><td>image3D</td><td>GL_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
/// <tr valign="top" class="even"><td>image2DRect</td><td>GL_IMAGE_2D_RECT</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">QTextureRectangle</a></td></tr>
/// <tr valign="top" class="odd"><td>imageCube</td><td>GL_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
/// <tr valign="top" class="even"><td>imageBuffer</td><td>GL_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
/// <tr valign="top" class="odd"><td>image1DArray</td><td>GL_IMAGE_1D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">QTexture1DArray</a></td></tr>
/// <tr valign="top" class="even"><td>image2DArray</td><td>GL_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
/// <tr valign="top" class="odd"><td>imageCubeArray</td><td>GL_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
/// <tr valign="top" class="even"><td>image2DMS</td><td>GL_IMAGE_2D_MULTISAMPLE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">QTexture2DMultisample</a></td></tr>
/// <tr valign="top" class="odd"><td>image2DMSArray</td><td>GL_IMAGE_2D_MULTISAMPLE_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">QTexture2DMultisampleArray</a></td></tr>
/// <tr valign="top" class="even"><td>iimage1D</td><td>GL_INT_IMAGE_1D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">QTexture1D</a></td></tr>
/// <tr valign="top" class="odd"><td>iimage2D</td><td>GL_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
/// <tr valign="top" class="even"><td>iimage3D</td><td>GL_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
/// <tr valign="top" class="odd"><td>iimage2DRect</td><td>GL_INT_IMAGE_2D_RECT</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">QTextureRectangle</a></td></tr>
/// <tr valign="top" class="even"><td>iimageCube</td><td>GL_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
/// <tr valign="top" class="odd"><td>iimageBuffer</td><td>GL_INT_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
/// <tr valign="top" class="even"><td>iimage1DArray</td><td>GL_INT_IMAGE_1D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">QTexture1DArray</a></td></tr>
/// <tr valign="top" class="odd"><td>iimage2DArray</td><td>GL_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
/// <tr valign="top" class="even"><td>iimageCubeArray</td><td>GL_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
/// <tr valign="top" class="odd"><td>iimage2DMS</td><td>GL_INT_IMAGE_2D_MULTISAMPLE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">QTexture2DMultisample</a></td></tr>
/// <tr valign="top" class="even"><td>iimage2DMSArray</td><td>GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">QTexture2DMultisampleArray</a></td></tr>
/// <tr valign="top" class="odd"><td>uimage1D</td><td>GL_UNSIGNED_INT_IMAGE_1D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">QTexture1D</a></td></tr>
/// <tr valign="top" class="even"><td>uimage2D</td><td>GL_UNSIGNED_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
/// <tr valign="top" class="odd"><td>uimage3D</td><td>GL_UNSIGNED_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
/// <tr valign="top" class="even"><td>uimage2DRect</td><td>GL_UNSIGNED_INT_IMAGE_2D_RECT</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">QTextureRectangle</a></td></tr>
/// <tr valign="top" class="odd"><td>uimageCube</td><td>GL_UNSIGNED_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
/// <tr valign="top" class="even"><td>uimageBuffer</td><td>GL_UNSIGNED_INT_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
/// <tr valign="top" class="odd"><td>uimage1DArray</td><td>GL_UNSIGNED_INT_IMAGE_1D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">QTexture1DArray</a></td></tr>
/// <tr valign="top" class="even"><td>uimage2DArray</td><td>GL_UNSIGNED_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
/// <tr valign="top" class="odd"><td>uimageCubeArray</td><td>GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
/// <tr valign="top" class="even"><td>uimage2DMS</td><td>GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">QTexture2DMultisample</a></td></tr>
/// <tr valign="top" class="odd"><td>uimage2DMSArray</td><td>GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">QTexture2DMultisampleArray</a></td></tr>
/// </tbody></table></div>
/// <p>OpenGL ES 3.1 supports the following image types:</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>GLSL Type</th><th>OpenGL Type Enum</th><th>Texture Type</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td>image2D</td><td>GL_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
/// <tr valign="top" class="even"><td>image3D</td><td>GL_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
/// <tr valign="top" class="odd"><td>imageCube</td><td>GL_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
/// <tr valign="top" class="even"><td>image2DArray</td><td>GL_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
/// <tr valign="top" class="odd"><td>iimage2D</td><td>GL_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
/// <tr valign="top" class="even"><td>iimage3D</td><td>GL_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
/// <tr valign="top" class="odd"><td>iimageCube</td><td>GL_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
/// <tr valign="top" class="even"><td>iimage2DArray</td><td>GL_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
/// <tr valign="top" class="odd"><td>uimage2D</td><td>GL_UNSIGNED_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
/// <tr valign="top" class="even"><td>uimage3D</td><td>GL_UNSIGNED_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
/// <tr valign="top" class="odd"><td>uimageCube</td><td>GL_UNSIGNED_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
/// <tr valign="top" class="even"><td>uimage2DArray</td><td>GL_UNSIGNED_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
/// </tbody></table></div>
/// <p>OpenGL ES 3.2 supports all of the OpenGL ES 3.1 image types as well as the following:</p>
/// <div class="table"><table class="generic">
///  <thead><tr class="qt-style"><th>GLSL Type</th><th>OpenGL Type Enum</th><th>Texture Type</th></tr></thead>
/// <tbody><tr valign="top" class="odd"><td>imageBuffer</td><td>GL_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
/// <tr valign="top" class="even"><td>imageCubeArray</td><td>GL_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
/// <tr valign="top" class="odd"><td>iimageBuffer</td><td>GL_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
/// <tr valign="top" class="even"><td>iimageCubeArray</td><td>GL_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
/// <tr valign="top" class="odd"><td>uimageBuffer</td><td>GL_UNSIGNED_INT_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
/// <tr valign="top" class="even"><td>uimageCubeArray</td><td>GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
/// </tbody></table></div>
/// <p>Expected use would look like:</p>
/// <pre class="cpp plain">
///   Qt3DRender::QTexture2D *tex2D = new Qt3DRender::QTexture2D();
///   ...
///   Qt3DRender::QMaterial *material = new Qt3DRender::QMaterial();
///   ...
///   Qt3DRender::QParameter *imageParameter = new Qt3DRender::QParameter();
///   Qt3DRender::QShaderImage *shaderImage = new Qt3DRender::QShaderImage();
///
///   shaderImage-&gt;setTexture(tex2D);
///
///   imageParameter-&gt;setName("imageUniformName");
///   imageParameter-&gt;setValue(QVariant::fromValue(shaderImage));
///
///   material-&gt;addParameter(imageParamenter);
///
/// </pre></div>
#[repr(C)]
pub struct QShaderImage {
    _unused: u8,
}
impl QShaderImage {
    /// Returns a built-in Qt slot `Qt3DRender::QShaderImage::setTexture` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_texture(&self) -> ::qt_core::Receiver<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setTexture(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>*</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderImage::setLayered` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layered-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>*</p>
    /// <p>If set to true, if the referenced texture is a one-dimensional array, two-dimensional array, three-dimensional, cube map, cube map array, or two-dimensional multisample array texture, the entire level will be bound for all layers. If set to false, only the single layer specified by the <i>layer</i> property will be bound.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>layered</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayered</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layeredChanged</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_layered(&self) -> ::qt_core::Receiver<(bool,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLayered(bool)\0"),
            )
        }
    }

    /// <p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderImage::setMipLevel` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_mip_level(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setMipLevel(int)\0"),
            )
        }
    }

    /// <p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderImage::setLayer` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    /// <p><b>Note: </b>When the referenced texture is of type cube map or cube map array and <i>ĺayered</i> is set to false, the face and layer are retrieved in the following manner:</p><pre class="cpp plain">
    ///   cubeMapLayer = layer / 6
    ///   cubeMapFace = layer - (cubeMapLayer * 6)
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_layer(&self) -> ::qt_core::Receiver<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1setLayer(int)\0"),
            )
        }
    }

    /// <p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderImage::setAccess` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#access-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::Access </td><td class="memItemRight bottomAlign"><span class="name"><b>access</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccess</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessChanged</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_access(&self) -> ::qt_core::Receiver<(crate::q_shader_image::Access,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setAccess(Qt3DRender::QShaderImage::Access)\0",
                ),
            )
        }
    }

    /// <p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    ///
    /// Returns a built-in Qt slot `Qt3DRender::QShaderImage::setFormat` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#format-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    /// <p>The format doesn't have to be the same as the referenced texture's format. It however has to be compatible (matching in size but not necessarily by class type). For instance a texture of format R32F (size 32bits, class 1x32) could be used with an image of format RGBA8I (size 32bits, class 4x8). Table 8.27 of the <a href="https://www.khronos.org/registry/OpenGL/specs/gl/glspec45.core.pdf">OpenGL specifications</a> shows the size and class for all supported Image formats.</p>
    /// <p>By default Qt3D will try to set the image format to match that of the referenced texture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::ImageFormat </td><td class="memItemRight bottomAlign"><span class="name"><b>format</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFormat</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>formatChanged</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn slot_set_format(&self) -> ::qt_core::Receiver<(crate::q_shader_image::ImageFormat,)> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1setFormat(Qt3DRender::QShaderImage::ImageFormat)\0",
                ),
            )
        }
    }

    /// Returns a built-in Qt signal `Qt3DRender::QShaderImage::textureChanged` that can be passed to `qt_core::Signal::connect`.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn texture_changed(&self) -> ::qt_core::Signal<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2textureChanged(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// <p>*</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderImage::layeredChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layered-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>*</p>
    /// <p>If set to true, if the referenced texture is a one-dimensional array, two-dimensional array, three-dimensional, cube map, cube map array, or two-dimensional multisample array texture, the entire level will be bound for all layers. If set to false, only the single layer specified by the <i>layer</i> property will be bound.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>layered</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayered</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layeredChanged</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn layered_changed(&self) -> ::qt_core::Signal<(bool,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2layeredChanged(bool)\0"),
            )
        }
    }

    /// <p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderImage::mipLevelChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn mip_level_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2mipLevelChanged(int)\0"),
            )
        }
    }

    /// <p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderImage::layerChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    /// <p><b>Note: </b>When the referenced texture is of type cube map or cube map array and <i>ĺayered</i> is set to false, the face and layer are retrieved in the following manner:</p><pre class="cpp plain">
    ///   cubeMapLayer = layer / 6
    ///   cubeMapFace = layer - (cubeMapLayer * 6)
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn layer_changed(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2layerChanged(int)\0"),
            )
        }
    }

    /// <p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderImage::accessChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#access-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::Access </td><td class="memItemRight bottomAlign"><span class="name"><b>access</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccess</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessChanged</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn access_changed(&self) -> ::qt_core::Signal<(crate::q_shader_image::Access,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2accessChanged(Qt3DRender::QShaderImage::Access)\0",
                ),
            )
        }
    }

    /// <p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QShaderImage::formatChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#format-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    /// <p>The format doesn't have to be the same as the referenced texture's format. It however has to be compatible (matching in size but not necessarily by class type). For instance a texture of format R32F (size 32bits, class 1x32) could be used with an image of format RGBA8I (size 32bits, class 4x8). Table 8.27 of the <a href="https://www.khronos.org/registry/OpenGL/specs/gl/glspec45.core.pdf">OpenGL specifications</a> shows the size and class for all supported Image formats.</p>
    /// <p>By default Qt3D will try to set the image format to match that of the referenced texture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::ImageFormat </td><td class="memItemRight bottomAlign"><span class="name"><b>format</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFormat</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>formatChanged</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn format_changed(&self) -> ::qt_core::Signal<(crate::q_shader_image::ImageFormat,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2formatChanged(Qt3DRender::QShaderImage::ImageFormat)\0",
                ),
            )
        }
    }

    /// <p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderImage::Access Qt3DRender::QShaderImage::access() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#access-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::Access </td><td class="memItemRight bottomAlign"><span class="name"><b>access</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccess</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessChanged</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn access(&self) -> crate::q_shader_image::Access {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_access(
            self as *const crate::QShaderImage,
        )
    }

    /// <p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderImage::ImageFormat Qt3DRender::QShaderImage::format() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#format-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    /// <p>The format doesn't have to be the same as the referenced texture's format. It however has to be compatible (matching in size but not necessarily by class type). For instance a texture of format R32F (size 32bits, class 1x32) could be used with an image of format RGBA8I (size 32bits, class 4x8). Table 8.27 of the <a href="https://www.khronos.org/registry/OpenGL/specs/gl/glspec45.core.pdf">OpenGL specifications</a> shows the size and class for all supported Image formats.</p>
    /// <p>By default Qt3D will try to set the image format to match that of the referenced texture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::ImageFormat </td><td class="memItemRight bottomAlign"><span class="name"><b>format</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFormat</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>formatChanged</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn format(&self) -> crate::q_shader_image::ImageFormat {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_format(
            self as *const crate::QShaderImage,
        )
    }

    /// <p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QShaderImage::layer() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    /// <p><b>Note: </b>When the referenced texture is of type cube map or cube map array and <i>ĺayered</i> is set to false, the face and layer are retrieved in the following manner:</p><pre class="cpp plain">
    ///   cubeMapLayer = layer / 6
    ///   cubeMapFace = layer - (cubeMapLayer * 6)
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn layer(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_layer(
            self as *const crate::QShaderImage,
        )
    }

    /// <p>*</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QShaderImage::layered() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layered-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>*</p>
    /// <p>If set to true, if the referenced texture is a one-dimensional array, two-dimensional array, three-dimensional, cube map, cube map array, or two-dimensional multisample array texture, the entire level will be bound for all layers. If set to false, only the single layer specified by the <i>layer</i> property will be bound.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>layered</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayered</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layeredChanged</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn layered(&self) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_layered(
            self as *const crate::QShaderImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QShaderImage::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_metaObject(
                self as *const crate::QShaderImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// <p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QShaderImage::mipLevel() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn mip_level(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_mipLevel(
            self as *const crate::QShaderImage,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderImage::QShaderImage(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QShaderImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_QShaderImage(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>To make the content of textures available for read and write operations in a shader, they need to exposed as QShaderImage. Textures can be composed of several mip levels, layers and faces. Additionally declaring a QShaderImage allows specifying which level, layer or face of the texture content we want to access.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QShaderImage::QShaderImage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>To make the content of textures available for read and write operations in a shader, they need to exposed as QShaderImage. Textures can be composed of several mip levels, layers and faces. Additionally declaring a QShaderImage allows specifying which level, layer or face of the texture content we want to access.</p>
    /// <p>QShaderImage has to be assigned as a <a href="http://doc.qt.io/qt-5/qt3drender-qparameter.html">QParameter</a>'s value and reference a valid <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttexture.html">Qt3DRender::QAbstractTexture</a> to work properly.</p>
    /// <p>If the referenced texture is a one-dimensional array, two-dimensional array, three-dimensional, cube map, cube map array, or two-dimensional multisample array texture, it is possible to bind either the entire texture level or a single layer or face of the texture level. This can be controlled with the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layered-prop">layered</a> property.</p>
    /// <p>Support for QShaderImage is only supported with OpenGL 4 and partially with OpenGL ES 3.1 and 3.2.</p>
    /// <p>OpenGL 4 supports the following image types:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>GLSL Type</th><th>OpenGL Type Enum</th><th>Texture Type</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>image1D</td><td>GL_IMAGE_1D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">QTexture1D</a></td></tr>
    /// <tr valign="top" class="even"><td>image2D</td><td>GL_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
    /// <tr valign="top" class="odd"><td>image3D</td><td>GL_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
    /// <tr valign="top" class="even"><td>image2DRect</td><td>GL_IMAGE_2D_RECT</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">QTextureRectangle</a></td></tr>
    /// <tr valign="top" class="odd"><td>imageCube</td><td>GL_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
    /// <tr valign="top" class="even"><td>imageBuffer</td><td>GL_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
    /// <tr valign="top" class="odd"><td>image1DArray</td><td>GL_IMAGE_1D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">QTexture1DArray</a></td></tr>
    /// <tr valign="top" class="even"><td>image2DArray</td><td>GL_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>imageCubeArray</td><td>GL_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
    /// <tr valign="top" class="even"><td>image2DMS</td><td>GL_IMAGE_2D_MULTISAMPLE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">QTexture2DMultisample</a></td></tr>
    /// <tr valign="top" class="odd"><td>image2DMSArray</td><td>GL_IMAGE_2D_MULTISAMPLE_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">QTexture2DMultisampleArray</a></td></tr>
    /// <tr valign="top" class="even"><td>iimage1D</td><td>GL_INT_IMAGE_1D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">QTexture1D</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimage2D</td><td>GL_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
    /// <tr valign="top" class="even"><td>iimage3D</td><td>GL_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimage2DRect</td><td>GL_INT_IMAGE_2D_RECT</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">QTextureRectangle</a></td></tr>
    /// <tr valign="top" class="even"><td>iimageCube</td><td>GL_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimageBuffer</td><td>GL_INT_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
    /// <tr valign="top" class="even"><td>iimage1DArray</td><td>GL_INT_IMAGE_1D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">QTexture1DArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimage2DArray</td><td>GL_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
    /// <tr valign="top" class="even"><td>iimageCubeArray</td><td>GL_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimage2DMS</td><td>GL_INT_IMAGE_2D_MULTISAMPLE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">QTexture2DMultisample</a></td></tr>
    /// <tr valign="top" class="even"><td>iimage2DMSArray</td><td>GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">QTexture2DMultisampleArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimage1D</td><td>GL_UNSIGNED_INT_IMAGE_1D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1d.html">QTexture1D</a></td></tr>
    /// <tr valign="top" class="even"><td>uimage2D</td><td>GL_UNSIGNED_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimage3D</td><td>GL_UNSIGNED_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
    /// <tr valign="top" class="even"><td>uimage2DRect</td><td>GL_UNSIGNED_INT_IMAGE_2D_RECT</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturerectangle.html">QTextureRectangle</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimageCube</td><td>GL_UNSIGNED_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
    /// <tr valign="top" class="even"><td>uimageBuffer</td><td>GL_UNSIGNED_INT_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimage1DArray</td><td>GL_UNSIGNED_INT_IMAGE_1D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture1darray.html">QTexture1DArray</a></td></tr>
    /// <tr valign="top" class="even"><td>uimage2DArray</td><td>GL_UNSIGNED_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimageCubeArray</td><td>GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
    /// <tr valign="top" class="even"><td>uimage2DMS</td><td>GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisample.html">QTexture2DMultisample</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimage2DMSArray</td><td>GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2dmultisamplearray.html">QTexture2DMultisampleArray</a></td></tr>
    /// </tbody></table></div>
    /// <p>OpenGL ES 3.1 supports the following image types:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>GLSL Type</th><th>OpenGL Type Enum</th><th>Texture Type</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>image2D</td><td>GL_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
    /// <tr valign="top" class="even"><td>image3D</td><td>GL_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
    /// <tr valign="top" class="odd"><td>imageCube</td><td>GL_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
    /// <tr valign="top" class="even"><td>image2DArray</td><td>GL_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimage2D</td><td>GL_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
    /// <tr valign="top" class="even"><td>iimage3D</td><td>GL_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimageCube</td><td>GL_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
    /// <tr valign="top" class="even"><td>iimage2DArray</td><td>GL_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimage2D</td><td>GL_UNSIGNED_INT_IMAGE_2D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2d.html">QTexture2D</a></td></tr>
    /// <tr valign="top" class="even"><td>uimage3D</td><td>GL_UNSIGNED_INT_IMAGE_3D</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture3d.html">QTexture3D</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimageCube</td><td>GL_UNSIGNED_INT_IMAGE_CUBE</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemap.html">QTextureCubeMap</a></td></tr>
    /// <tr valign="top" class="even"><td>uimage2DArray</td><td>GL_UNSIGNED_INT_IMAGE_2D_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexture2darray.html">QTexture2DArray</a></td></tr>
    /// </tbody></table></div>
    /// <p>OpenGL ES 3.2 supports all of the OpenGL ES 3.1 image types as well as the following:</p>
    /// <div class="table"><table class="generic">
    ///  <thead><tr class="qt-style"><th>GLSL Type</th><th>OpenGL Type Enum</th><th>Texture Type</th></tr></thead>
    /// <tbody><tr valign="top" class="odd"><td>imageBuffer</td><td>GL_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
    /// <tr valign="top" class="even"><td>imageCubeArray</td><td>GL_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>iimageBuffer</td><td>GL_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
    /// <tr valign="top" class="even"><td>iimageCubeArray</td><td>GL_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
    /// <tr valign="top" class="odd"><td>uimageBuffer</td><td>GL_UNSIGNED_INT_IMAGE_BUFFER</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturebuffer.html">QTextureBuffer</a></td></tr>
    /// <tr valign="top" class="even"><td>uimageCubeArray</td><td>GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY</td><td><a href="http://doc.qt.io/qt-5/qt3drender-qtexturecubemaparray.html">QTextureCubeMapArray</a></td></tr>
    /// </tbody></table></div>
    /// <p>Expected use would look like:</p>
    /// <pre class="cpp plain">
    ///   Qt3DRender::QTexture2D *tex2D = new Qt3DRender::QTexture2D();
    ///   ...
    ///   Qt3DRender::QMaterial *material = new Qt3DRender::QMaterial();
    ///   ...
    ///   Qt3DRender::QParameter *imageParameter = new Qt3DRender::QParameter();
    ///   Qt3DRender::QShaderImage *shaderImage = new Qt3DRender::QShaderImage();
    ///
    ///   shaderImage-&gt;setTexture(tex2D);
    ///
    ///   imageParameter-&gt;setName("imageUniformName");
    ///   imageParameter-&gt;setValue(QVariant::fromValue(shaderImage));
    ///
    ///   material-&gt;addParameter(imageParamenter);
    ///
    /// </pre></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QShaderImage> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_QShaderImage1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QShaderImage::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_qt_metacall(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QShaderImage::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_qt_metacast(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            arg1,
        )
    }

    /// <p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderImage::setAccess(Qt3DRender::QShaderImage::Access access)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#access-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the type of access we want to allow from our shader instances to the image. If a shader tries to write or read from an image that has incompatible access, the behavior is undefined.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::Access </td><td class="memItemRight bottomAlign"><span class="name"><b>access</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setAccess</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>accessChanged</b></span>(Qt3DRender::QShaderImage::Access <i>access</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_access(&self, access: crate::q_shader_image::Access) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_setAccess(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            access,
        )
    }

    /// <p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderImage::setFormat(Qt3DRender::QShaderImage::ImageFormat format)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#format-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Specifies the image format, which is essentially important when storing values in the Image from a shader.</p>
    /// <p>The format doesn't have to be the same as the referenced texture's format. It however has to be compatible (matching in size but not necessarily by class type). For instance a texture of format R32F (size 32bits, class 1x32) could be used with an image of format RGBA8I (size 32bits, class 4x8). Table 8.27 of the <a href="https://www.khronos.org/registry/OpenGL/specs/gl/glspec45.core.pdf">OpenGL specifications</a> shows the size and class for all supported Image formats.</p>
    /// <p>By default Qt3D will try to set the image format to match that of the referenced texture.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QShaderImage::ImageFormat </td><td class="memItemRight bottomAlign"><span class="name"><b>format</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setFormat</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>formatChanged</b></span>(Qt3DRender::QShaderImage::ImageFormat <i>format</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_format(&self, format: crate::q_shader_image::ImageFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_setFormat(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            format,
        )
    }

    /// <p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderImage::setLayer(int layer)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layer-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which layer out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>. This property does nothing if <i>layered</i> is set to true or if the reference texture's type isn't compatible with layers.</p>
    /// <p><b>Note: </b>When the referenced texture is of type cube map or cube map array and <i>ĺayered</i> is set to false, the face and layer are retrieved in the following manner:</p><pre class="cpp plain">
    ///   cubeMapLayer = layer / 6
    ///   cubeMapFace = layer - (cubeMapLayer * 6)
    ///
    /// </pre>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>layer</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayer</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layerChanged</b></span>(int <i>layer</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_layer(&self, layer: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_setLayer(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            layer,
        )
    }

    /// <p>*</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderImage::setLayered(bool layered)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#layered-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>*</p>
    /// <p>If set to true, if the referenced texture is a one-dimensional array, two-dimensional array, three-dimensional, cube map, cube map array, or two-dimensional multisample array texture, the entire level will be bound for all layers. If set to false, only the single layer specified by the <i>layer</i> property will be bound.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>layered</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setLayered</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>layeredChanged</b></span>(bool <i>layered</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_layered(&self, layered: bool) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_setLayered(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            layered,
        )
    }

    /// <p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderImage::setMipLevel(int mipLevel)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html#mipLevel-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Holds which mipLevel out of the referenced texture should be used for the <a href="http://doc.qt.io/qt-5/qt3drender-qshaderimage.html">QShaderImage</a>.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> int </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevel</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setMipLevel</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>mipLevelChanged</b></span>(int <i>mipLevel</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_mip_level(&self, mip_level: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_setMipLevel(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            mip_level,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```[slot] void Qt3DRender::QShaderImage::setTexture(Qt3DRender::QAbstractTexture* texture)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_texture(
        &self,
        texture: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_setTexture(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
            ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(texture)
                .as_raw_ptr() as *mut crate::QAbstractTexture,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* Qt3DRender::QShaderImage::texture() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn texture(&self) -> ::qt_core::QPtr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_texture(
                self as *const crate::QShaderImage,
            )
        };
        ::qt_core::QPtr::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderImage::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QShaderImage::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

pub mod q_subtree_enabler {
    //! C++ type: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler```</span>

    /// C++ enum: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler::Enablement```</span>.
    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
    #[repr(transparent)]
    pub struct Enablement(::std::os::raw::c_int);

    impl From<::std::os::raw::c_int> for Enablement {
        fn from(value: ::std::os::raw::c_int) -> Self {
            Enablement(value)
        }
    }

    impl From<Enablement> for ::std::os::raw::c_int {
        fn from(value: Enablement) -> Self {
            value.0
        }
    }

    impl Enablement {
        pub fn to_int(&self) -> ::std::os::raw::c_int {
            self.0
        }
    }

    impl Enablement {
        /// C++ enum variant: <span style='color: green;'>```Persistent = 0```</span>
        #[allow(non_upper_case_globals)]
        pub const Persistent: crate::q_subtree_enabler::Enablement =
            crate::q_subtree_enabler::Enablement(0);
        /// C++ enum variant: <span style='color: green;'>```SingleShot = 1```</span>
        #[allow(non_upper_case_globals)]
        pub const SingleShot: crate::q_subtree_enabler::Enablement =
            crate::q_subtree_enabler::Enablement(1);
    }
}
/// <p>While QFrameGraphNodes can be individually enabled and disabled via the <code>enabled</code> property, this can become tedious when an entire path needs to be turned on or off. QSubtreeEnabler is a convenience node that makes this use case trivial, allowing all of its children to be controlled by a single switch.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qsubtreeenabler.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>While QFrameGraphNodes can be individually enabled and disabled via the <code>enabled</code> property, this can become tedious when an entire path needs to be turned on or off. QSubtreeEnabler is a convenience node that makes this use case trivial, allowing all of its children to be controlled by a single switch.</p>
/// <p>QSubtreeEnabler is enabled by default.</p></div>
#[repr(C)]
pub struct QSubtreeEnabler {
    _unused: u8,
}
impl QSubtreeEnabler {
    /// <p>Controls whether subtree enablement is persistent or transient.</p>
    ///
    /// Returns a built-in Qt signal `Qt3DRender::QSubtreeEnabler::enablementChanged` that can be passed to `qt_core::Signal::connect`.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsubtreeenabler.html#enablement-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Controls whether subtree enablement is persistent or transient.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QSubtreeEnabler::Enablement </td><td class="memItemRight bottomAlign"><span class="name"><b>enablement</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEnablement</b></span>(Qt3DRender::QSubtreeEnabler::Enablement <i>enablement</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>enablementChanged</b></span>(Qt3DRender::QSubtreeEnabler::Enablement <i>enablement</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn enablement_changed(&self) -> ::qt_core::Signal<(crate::q_subtree_enabler::Enablement,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2enablementChanged(Qt3DRender::QSubtreeEnabler::Enablement)\0",
                ),
            )
        }
    }

    /// <p>Controls whether subtree enablement is persistent or transient.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler::Enablement Qt3DRender::QSubtreeEnabler::enablement() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsubtreeenabler.html#enablement-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Controls whether subtree enablement is persistent or transient.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QSubtreeEnabler::Enablement </td><td class="memItemRight bottomAlign"><span class="name"><b>enablement</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEnablement</b></span>(Qt3DRender::QSubtreeEnabler::Enablement <i>enablement</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>enablementChanged</b></span>(Qt3DRender::QSubtreeEnabler::Enablement <i>enablement</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn enablement(&self) -> crate::q_subtree_enabler::Enablement {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_enablement(
            self as *const crate::QSubtreeEnabler,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual const QMetaObject* Qt3DRender::QSubtreeEnabler::metaObject() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_metaObject(
                self as *const crate::QSubtreeEnabler,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSubtreeEnabler::QSubtreeEnabler(Qt3DCore::QNode* parent = …)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_1a(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_3d_core::QNode>>,
    ) -> ::qt_core::QBox<crate::QSubtreeEnabler> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_QSubtreeEnabler(
                ::cpp_core::CastInto::<::cpp_core::Ptr<::qt_3d_core::QNode>>::cast_into(parent)
                    .as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// <p>While QFrameGraphNodes can be individually enabled and disabled via the <code>enabled</code> property, this can become tedious when an entire path needs to be turned on or off. QSubtreeEnabler is a convenience node that makes this use case trivial, allowing all of its children to be controlled by a single switch.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QSubtreeEnabler::QSubtreeEnabler()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsubtreeenabler.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>While QFrameGraphNodes can be individually enabled and disabled via the <code>enabled</code> property, this can become tedious when an entire path needs to be turned on or off. QSubtreeEnabler is a convenience node that makes this use case trivial, allowing all of its children to be controlled by a single switch.</p>
    /// <p>QSubtreeEnabler is enabled by default.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_0a() -> ::qt_core::QBox<crate::QSubtreeEnabler> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_QSubtreeEnabler1() };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    /// Calls C++ function: <span style='color: green;'>```virtual int Qt3DRender::QSubtreeEnabler::qt_metacall(QMetaObject::Call arg1, int arg2, void** arg3)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_qt_metacall(
            self as *const crate::QSubtreeEnabler as *mut crate::QSubtreeEnabler,
            arg1,
            arg2,
            arg3,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```virtual void* Qt3DRender::QSubtreeEnabler::qt_metacast(const char* arg1)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_qt_metacast(
            self as *const crate::QSubtreeEnabler as *mut crate::QSubtreeEnabler,
            arg1,
        )
    }

    /// <p>Requests that the subtree be enabled.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QSubtreeEnabler::requestUpdate()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsubtreeenabler.html#requestUpdate">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Requests that the subtree be enabled.</p>
    /// <p>A convenience method intended to be used with <code>SingleShot</code> enablement.</p>
    /// <p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See <a href="http://doc.qt.io/qt-5/qobject.html#Q_INVOKABLE">Q_INVOKABLE</a>.</p></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn request_update(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_requestUpdate(
            self as *const crate::QSubtreeEnabler as *mut crate::QSubtreeEnabler,
        )
    }

    /// <p>Controls whether subtree enablement is persistent or transient.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QSubtreeEnabler::setEnablement(Qt3DRender::QSubtreeEnabler::Enablement enablement)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qsubtreeenabler.html#enablement-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Controls whether subtree enablement is persistent or transient.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> Qt3DRender::QSubtreeEnabler::Enablement </td><td class="memItemRight bottomAlign"><span class="name"><b>enablement</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setEnablement</b></span>(Qt3DRender::QSubtreeEnabler::Enablement <i>enablement</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>enablementChanged</b></span>(Qt3DRender::QSubtreeEnabler::Enablement <i>enablement</i>)</td></tr>
    /// </tbody></table></div></div>
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_enablement(&self, enablement: crate::q_subtree_enabler::Enablement) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_setEnablement(
            self as *const crate::QSubtreeEnabler as *mut crate::QSubtreeEnabler,
            enablement,
        )
    }

    /// Returns a reference to the <span style='color: green;'>```staticMetaObject```</span> field.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_staticMetaObject() };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSubtreeEnabler::tr(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_tr(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```static QString Qt3DRender::QSubtreeEnabler::trUtf8(const char* s, const char* c, int n)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result =
            { crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_trUtf8(s, c, n) };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

/// <p>The actual data content is contained in a <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html#QTextureImageDataPtr-typedef">QTextureImageDataPtr</a> member. Additional members allow to specify the x, y, z offset of the content update as well as the eventual layer, mipLevel and face.</p>
///
/// C++ class: <span style='color: green;'>```Qt3DRender::QTextureDataUpdate```</span>.
///
/// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturedataupdate.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>The actual data content is contained in a <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html#QTextureImageDataPtr-typedef">QTextureImageDataPtr</a> member. Additional members allow to specify the x, y, z offset of the content update as well as the eventual layer, mipLevel and face.</p></div>
#[repr(C)]
pub struct QTextureDataUpdate {
    _unused: u8,
}
impl QTextureDataUpdate {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureDataUpdate& Qt3DRender::QTextureDataUpdate::operator=(const Qt3DRender::QTextureDataUpdate& other)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn copy_from(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureDataUpdate>>,
    ) -> ::cpp_core::Ref<crate::QTextureDataUpdate> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_operator_(
                self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureDataUpdate>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            )
        };
        ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref")
    }

    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture::CubeMapFace Qt3DRender::QTextureDataUpdate::face() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn face(&self) -> crate::q_abstract_texture::CubeMapFace {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_face(
            self as *const crate::QTextureDataUpdate,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureDataUpdate::layer() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn layer(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_layer(
            self as *const crate::QTextureDataUpdate,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureDataUpdate::mipLevel() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn mip_level(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_mipLevel(
            self as *const crate::QTextureDataUpdate,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureDataUpdate::QTextureDataUpdate()```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new() -> ::cpp_core::CppBox<crate::QTextureDataUpdate> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_QTextureDataUpdate()
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```[constructor] void Qt3DRender::QTextureDataUpdate::QTextureDataUpdate(const Qt3DRender::QTextureDataUpdate& other)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new_copy(
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureDataUpdate>>,
    ) -> ::cpp_core::CppBox<crate::QTextureDataUpdate> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_QTextureDataUpdate1(
                ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureDataUpdate>>::cast_into(
                    other,
                )
                .as_raw_ptr(),
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureDataUpdate::setFace(Qt3DRender::QAbstractTexture::CubeMapFace face)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_face(&self, face: crate::q_abstract_texture::CubeMapFace) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_setFace(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
            face,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureDataUpdate::setLayer(int layer)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_layer(&self, layer: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_setLayer(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
            layer,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureDataUpdate::setMipLevel(int mipLevel)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_mip_level(&self, mip_level: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_setMipLevel(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
            mip_level,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureDataUpdate::setX(int x)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_x(&self, x: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_setX(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
            x,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureDataUpdate::setY(int y)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_y(&self, y: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_setY(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
            y,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureDataUpdate::setZ(int z)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set_z(&self, z: ::std::os::raw::c_int) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_setZ(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
            z,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```void Qt3DRender::QTextureDataUpdate::swap(Qt3DRender::QTextureDataUpdate& other)```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn swap(
        &self,
        other: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureDataUpdate>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_swap(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
            ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureDataUpdate>>::cast_into(other)
                .as_raw_ptr() as *mut crate::QTextureDataUpdate,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureDataUpdate::x() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn x(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_x(
            self as *const crate::QTextureDataUpdate,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureDataUpdate::y() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn y(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_y(
            self as *const crate::QTextureDataUpdate,
        )
    }

    /// Calls C++ function: <span style='color: green;'>```int Qt3DRender::QTextureDataUpdate::z() const```</span>.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn z(&self) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_z(
            self as *const crate::QTextureDataUpdate,
        )
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfCubeMapFace {
    type Arguments = (crate::q_abstract_texture::CubeMapFace,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::CubeMapFace)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfCubeMapFace {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::CubeMapFace,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::CubeMapFace,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_texture::CubeMapFace`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::CubeMapFace```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfCubeMapFace {
    _unused: u8,
}
impl SignalOfCubeMapFace {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::CubeMapFace,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::CubeMapFace)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_texture::CubeMapFace) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_emit_(self as *const crate::SignalOfCubeMapFace as *mut crate::SignalOfCubeMapFace, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_metaObject(self as *const crate::SignalOfCubeMapFace)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfCubeMapFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_qt_metacall(self as *const crate::SignalOfCubeMapFace as *mut crate::SignalOfCubeMapFace, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_qt_metacast(self as *const crate::SignalOfCubeMapFace as *mut crate::SignalOfCubeMapFace, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQPickEvent {
    type Arguments = (*mut crate::QPickEvent,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickEvent *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQPickEvent {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QPickEvent,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QPickEvent,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QPickEvent`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickEvent*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQPickEvent {
    _unused: u8,
}
impl SignalOfQPickEvent {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QPickEvent,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickEvent *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPickEvent>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_emit_(self as *const crate::SignalOfQPickEvent as *mut crate::SignalOfQPickEvent, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPickEvent>>::cast_into(arg0).as_raw_ptr() as *mut crate::QPickEvent)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_metaObject(self as *const crate::SignalOfQPickEvent)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_qt_metacall(self as *const crate::SignalOfQPickEvent as *mut crate::SignalOfQPickEvent, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_qt_metacast(self as *const crate::SignalOfQPickEvent as *mut crate::SignalOfQPickEvent, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfUsageType {
    type Arguments = (crate::q_buffer::UsageType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBuffer::UsageType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfUsageType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_buffer::UsageType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_buffer::UsageType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_buffer::UsageType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer::UsageType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfUsageType {
    _unused: u8,
}
impl SignalOfUsageType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_buffer::UsageType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBuffer::UsageType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_buffer::UsageType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_emit_(self as *const crate::SignalOfUsageType as *mut crate::SignalOfUsageType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_metaObject(self as *const crate::SignalOfUsageType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfUsageType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_qt_metacall(self as *const crate::SignalOfUsageType as *mut crate::SignalOfUsageType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_qt_metacast(self as *const crate::SignalOfUsageType as *mut crate::SignalOfUsageType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQAttribute {
    type Arguments = (*mut crate::QAttribute,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAttribute *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQAttribute {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QAttribute,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QAttribute,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QAttribute`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAttribute*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQAttribute {
    _unused: u8,
}
impl SignalOfQAttribute {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QAttribute,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAttribute *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAttribute>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_emit_(self as *const crate::SignalOfQAttribute as *mut crate::SignalOfQAttribute, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAttribute>>::cast_into(arg0).as_raw_ptr() as *mut crate::QAttribute)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_metaObject(self as *const crate::SignalOfQAttribute)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_qt_metacall(self as *const crate::SignalOfQAttribute as *mut crate::SignalOfQAttribute, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_qt_metacast(self as *const crate::SignalOfQAttribute as *mut crate::SignalOfQAttribute, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQByteArray {
    type Arguments = (*const ::qt_core::QByteArray,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QByteArray const &)\0"),
            )
        }
    }
}

impl crate::SignalOfQByteArray {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QByteArray,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QByteArray,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_core::QByteArray`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QByteArray&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQByteArray {
    _unused: u8,
}
impl SignalOfQByteArray {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_core::QByteArray,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QByteArray const &)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_emit_(self as *const crate::SignalOfQByteArray as *mut crate::SignalOfQByteArray, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_metaObject(self as *const crate::SignalOfQByteArray)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_qt_metacall(self as *const crate::SignalOfQByteArray as *mut crate::SignalOfQByteArray, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_qt_metacast(self as *const crate::SignalOfQByteArray as *mut crate::SignalOfQByteArray, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfCullingMode {
    type Arguments = (crate::q_cull_face::CullingMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QCullFace::CullingMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfCullingMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_cull_face::CullingMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_cull_face::CullingMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_cull_face::CullingMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QCullFace::CullingMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfCullingMode {
    _unused: u8,
}
impl SignalOfCullingMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_cull_face::CullingMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QCullFace::CullingMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_cull_face::CullingMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_emit_(self as *const crate::SignalOfCullingMode as *mut crate::SignalOfCullingMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_metaObject(self as *const crate::SignalOfCullingMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfCullingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_qt_metacall(self as *const crate::SignalOfCullingMode as *mut crate::SignalOfCullingMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_qt_metacast(self as *const crate::SignalOfCullingMode as *mut crate::SignalOfCullingMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfAlphaFunction {
    type Arguments = (crate::q_alpha_test::AlphaFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAlphaTest::AlphaFunction)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfAlphaFunction {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_alpha_test::AlphaFunction,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_alpha_test::AlphaFunction,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_alpha_test::AlphaFunction`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAlphaTest::AlphaFunction```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfAlphaFunction {
    _unused: u8,
}
impl SignalOfAlphaFunction {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_alpha_test::AlphaFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAlphaTest::AlphaFunction)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_alpha_test::AlphaFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_emit_(self as *const crate::SignalOfAlphaFunction as *mut crate::SignalOfAlphaFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_metaObject(self as *const crate::SignalOfAlphaFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfAlphaFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_qt_metacall(self as *const crate::SignalOfAlphaFunction as *mut crate::SignalOfAlphaFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_qt_metacast(self as *const crate::SignalOfAlphaFunction as *mut crate::SignalOfAlphaFunction, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQStringList {
    type Arguments = (*const ::qt_core::QStringList,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QStringList const &)\0"),
            )
        }
    }
}

impl crate::SignalOfQStringList {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QStringList,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QStringList,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_core::QStringList`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QStringList&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQStringList {
    _unused: u8,
}
impl SignalOfQStringList {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_core::QStringList,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QStringList const &)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_emit_(self as *const crate::SignalOfQStringList as *mut crate::SignalOfQStringList, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_metaObject(self as *const crate::SignalOfQStringList)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_qt_metacall(self as *const crate::SignalOfQStringList as *mut crate::SignalOfQStringList, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_qt_metacast(self as *const crate::SignalOfQStringList as *mut crate::SignalOfQStringList, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfStencilFaceMode {
    type Arguments = (crate::q_stencil_test_arguments::StencilFaceMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilTestArguments::StencilFaceMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfStencilFaceMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_test_arguments::StencilFaceMode,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_test_arguments::StencilFaceMode,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_stencil_test_arguments::StencilFaceMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFaceMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfStencilFaceMode {
    _unused: u8,
}
impl SignalOfStencilFaceMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_stencil_test_arguments::StencilFaceMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilTestArguments::StencilFaceMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_stencil_test_arguments::StencilFaceMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_emit_(self as *const crate::SignalOfStencilFaceMode as *mut crate::SignalOfStencilFaceMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_metaObject(self as *const crate::SignalOfStencilFaceMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfStencilFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_qt_metacall(self as *const crate::SignalOfStencilFaceMode as *mut crate::SignalOfStencilFaceMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_qt_metacast(self as *const crate::SignalOfStencilFaceMode as *mut crate::SignalOfStencilFaceMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SignalOfAccess {
    type Arguments = (crate::q_shader_image::Access,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderImage::Access)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfAccess {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_shader_image::Access,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_shader_image::Access,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_shader_image::Access`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderImage::Access```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfAccess {
    _unused: u8,
}
impl SignalOfAccess {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_shader_image::Access,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderImage::Access)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn emit(&self, arg0: crate::q_shader_image::Access) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_emit_(self as *const crate::SignalOfAccess as *mut crate::SignalOfAccess, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_metaObject(self as *const crate::SignalOfAccess)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfAccess> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_qt_metacall(self as *const crate::SignalOfAccess as *mut crate::SignalOfAccess, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_qt_metacast(self as *const crate::SignalOfAccess as *mut crate::SignalOfAccess, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SignalOfEnablement {
    type Arguments = (crate::q_subtree_enabler::Enablement,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QSubtreeEnabler::Enablement)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfEnablement {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_subtree_enabler::Enablement,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_subtree_enabler::Enablement,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_subtree_enabler::Enablement`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QSubtreeEnabler::Enablement```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfEnablement {
    _unused: u8,
}
impl SignalOfEnablement {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_subtree_enabler::Enablement,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QSubtreeEnabler::Enablement)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn emit(&self, arg0: crate::q_subtree_enabler::Enablement) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_emit_(self as *const crate::SignalOfEnablement as *mut crate::SignalOfEnablement, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_metaObject(self as *const crate::SignalOfEnablement)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfEnablement> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_qt_metacall(self as *const crate::SignalOfEnablement as *mut crate::SignalOfEnablement, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_qt_metacast(self as *const crate::SignalOfEnablement as *mut crate::SignalOfEnablement, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQGeometry {
    type Arguments = (*mut crate::QGeometry,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGeometry *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQGeometry {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QGeometry,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QGeometry,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QGeometry`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGeometry*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQGeometry {
    _unused: u8,
}
impl SignalOfQGeometry {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QGeometry,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGeometry *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QGeometry>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_emit_(self as *const crate::SignalOfQGeometry as *mut crate::SignalOfQGeometry, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QGeometry>>::cast_into(arg0).as_raw_ptr() as *mut crate::QGeometry)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_metaObject(self as *const crate::SignalOfQGeometry)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_qt_metacall(self as *const crate::SignalOfQGeometry as *mut crate::SignalOfQGeometry, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_qt_metacast(self as *const crate::SignalOfQGeometry as *mut crate::SignalOfQGeometry, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfRenderPolicy {
    type Arguments = (crate::q_render_settings::RenderPolicy,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderSettings::RenderPolicy)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfRenderPolicy {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_render_settings::RenderPolicy,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_render_settings::RenderPolicy,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_render_settings::RenderPolicy`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderSettings::RenderPolicy```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfRenderPolicy {
    _unused: u8,
}
impl SignalOfRenderPolicy {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_render_settings::RenderPolicy,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderSettings::RenderPolicy)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_render_settings::RenderPolicy) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_emit_(self as *const crate::SignalOfRenderPolicy as *mut crate::SignalOfRenderPolicy, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_metaObject(self as *const crate::SignalOfRenderPolicy)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfRenderPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_qt_metacall(self as *const crate::SignalOfRenderPolicy as *mut crate::SignalOfRenderPolicy, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_qt_metacast(self as *const crate::SignalOfRenderPolicy as *mut crate::SignalOfRenderPolicy, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQVectorOfDouble {
    type Arguments = (*const ::qt_gui::QVectorOfDouble,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< double > const &)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQVectorOfDouble {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_gui::QVectorOfDouble,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_gui::QVectorOfDouble,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_gui::QVectorOfDouble`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<double>&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQVectorOfDouble {
    _unused: u8,
}
impl SignalOfQVectorOfDouble {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVectorOfDouble,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< double > const &)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVectorOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_emit_(self as *const crate::SignalOfQVectorOfDouble as *mut crate::SignalOfQVectorOfDouble, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVectorOfDouble>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_metaObject(self as *const crate::SignalOfQVectorOfDouble)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQVectorOfDouble> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_qt_metacall(self as *const crate::SignalOfQVectorOfDouble as *mut crate::SignalOfQVectorOfDouble, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_qt_metacast(self as *const crate::SignalOfQVectorOfDouble as *mut crate::SignalOfQVectorOfDouble, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQEffect {
    type Arguments = (*mut crate::QEffect,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(Qt3DRender::QEffect *)\0"),
            )
        }
    }
}

impl crate::SignalOfQEffect {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QEffect,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QEffect,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QEffect`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QEffect*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQEffect {
    _unused: u8,
}
impl SignalOfQEffect {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QEffect,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(Qt3DRender::QEffect *)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QEffect>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_emit_(self as *const crate::SignalOfQEffect as *mut crate::SignalOfQEffect, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QEffect>>::cast_into(arg0).as_raw_ptr() as *mut crate::QEffect)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_metaObject(self as *const crate::SignalOfQEffect)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_qt_metacall(self as *const crate::SignalOfQEffect as *mut crate::SignalOfQEffect, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_qt_metacast(self as *const crate::SignalOfQEffect as *mut crate::SignalOfQEffect, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfComparisonFunction {
    type Arguments = (crate::q_abstract_texture::ComparisonFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::ComparisonFunction)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfComparisonFunction {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::ComparisonFunction,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::ComparisonFunction,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_texture::ComparisonFunction`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonFunction```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfComparisonFunction {
    _unused: u8,
}
impl SignalOfComparisonFunction {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::ComparisonFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::ComparisonFunction)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_texture::ComparisonFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_emit_(self as *const crate::SignalOfComparisonFunction as *mut crate::SignalOfComparisonFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_metaObject(self as *const crate::SignalOfComparisonFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfComparisonFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_qt_metacall(self as *const crate::SignalOfComparisonFunction as *mut crate::SignalOfComparisonFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_qt_metacast(self as *const crate::SignalOfComparisonFunction as *mut crate::SignalOfComparisonFunction, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQCamera {
    type Arguments = (*mut crate::QCamera,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(Qt3DRender::QCamera *)\0"),
            )
        }
    }
}

impl crate::SignalOfQCamera {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QCamera,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QCamera,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QCamera`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QCamera*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQCamera {
    _unused: u8,
}
impl SignalOfQCamera {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QCamera,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(Qt3DRender::QCamera *)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QCamera>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_emit_(self as *const crate::SignalOfQCamera as *mut crate::SignalOfQCamera, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QCamera>>::cast_into(arg0).as_raw_ptr() as *mut crate::QCamera)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_metaObject(self as *const crate::SignalOfQCamera)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_qt_metacall(self as *const crate::SignalOfQCamera as *mut crate::SignalOfQCamera, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_qt_metacast(self as *const crate::SignalOfQCamera as *mut crate::SignalOfQCamera, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfProjectionType {
    type Arguments = (crate::q_camera_lens::ProjectionType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QCameraLens::ProjectionType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfProjectionType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_camera_lens::ProjectionType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_camera_lens::ProjectionType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_camera_lens::ProjectionType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QCameraLens::ProjectionType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfProjectionType {
    _unused: u8,
}
impl SignalOfProjectionType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_camera_lens::ProjectionType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QCameraLens::ProjectionType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_camera_lens::ProjectionType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_emit_(self as *const crate::SignalOfProjectionType as *mut crate::SignalOfProjectionType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_metaObject(self as *const crate::SignalOfProjectionType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfProjectionType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_qt_metacall(self as *const crate::SignalOfProjectionType as *mut crate::SignalOfProjectionType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_qt_metacast(self as *const crate::SignalOfProjectionType as *mut crate::SignalOfProjectionType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQColor {
    type Arguments = (*const ::qt_gui::QColor,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QColor const &)\0"),
            )
        }
    }
}

impl crate::SignalOfQColor {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_gui::QColor,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_gui::QColor,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_gui::QColor`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QColor&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQColor {
    _unused: u8,
}
impl SignalOfQColor {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_gui::QColor,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QColor const &)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QColor>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_emit_(self as *const crate::SignalOfQColor as *mut crate::SignalOfQColor, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QColor>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_metaObject(self as *const crate::SignalOfQColor)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQColor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_qt_metacall(self as *const crate::SignalOfQColor as *mut crate::SignalOfQColor, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_qt_metacast(self as *const crate::SignalOfQColor as *mut crate::SignalOfQColor, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfVertexBaseType {
    type Arguments = (crate::q_attribute::VertexBaseType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAttribute::VertexBaseType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfVertexBaseType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_attribute::VertexBaseType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_attribute::VertexBaseType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_attribute::VertexBaseType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAttribute::VertexBaseType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfVertexBaseType {
    _unused: u8,
}
impl SignalOfVertexBaseType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_attribute::VertexBaseType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAttribute::VertexBaseType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_attribute::VertexBaseType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_emit_(self as *const crate::SignalOfVertexBaseType as *mut crate::SignalOfVertexBaseType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_metaObject(self as *const crate::SignalOfVertexBaseType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfVertexBaseType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_qt_metacall(self as *const crate::SignalOfVertexBaseType as *mut crate::SignalOfVertexBaseType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_qt_metacast(self as *const crate::SignalOfVertexBaseType as *mut crate::SignalOfVertexBaseType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfFaceMode {
    type Arguments = (crate::q_stencil_operation_arguments::FaceMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilOperationArguments::FaceMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfFaceMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_operation_arguments::FaceMode,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_operation_arguments::FaceMode,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_stencil_operation_arguments::FaceMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilOperationArguments::FaceMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfFaceMode {
    _unused: u8,
}
impl SignalOfFaceMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_stencil_operation_arguments::FaceMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilOperationArguments::FaceMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_stencil_operation_arguments::FaceMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_emit_(self as *const crate::SignalOfFaceMode as *mut crate::SignalOfFaceMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_metaObject(self as *const crate::SignalOfFaceMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_qt_metacall(self as *const crate::SignalOfFaceMode as *mut crate::SignalOfFaceMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_qt_metacast(self as *const crate::SignalOfFaceMode as *mut crate::SignalOfFaceMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfWrapMode {
    type Arguments = (crate::q_texture_wrap_mode::WrapMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfWrapMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_texture_wrap_mode::WrapMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_texture_wrap_mode::WrapMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_texture_wrap_mode::WrapMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfWrapMode {
    _unused: u8,
}
impl SignalOfWrapMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_texture_wrap_mode::WrapMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_emit_(self as *const crate::SignalOfWrapMode as *mut crate::SignalOfWrapMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_metaObject(self as *const crate::SignalOfWrapMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_qt_metacall(self as *const crate::SignalOfWrapMode as *mut crate::SignalOfWrapMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_qt_metacast(self as *const crate::SignalOfWrapMode as *mut crate::SignalOfWrapMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfBlending {
    type Arguments = (crate::q_blend_equation_arguments::Blending,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfBlending {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_blend_equation_arguments::Blending,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_blend_equation_arguments::Blending,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_blend_equation_arguments::Blending`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBlendEquationArguments::Blending```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfBlending {
    _unused: u8,
}
impl SignalOfBlending {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_blend_equation_arguments::Blending,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_blend_equation_arguments::Blending) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_emit_(self as *const crate::SignalOfBlending as *mut crate::SignalOfBlending, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_metaObject(self as *const crate::SignalOfBlending)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfBlending> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_qt_metacall(self as *const crate::SignalOfBlending as *mut crate::SignalOfBlending, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_qt_metacast(self as *const crate::SignalOfBlending as *mut crate::SignalOfBlending, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQRenderTargetOutput {
    type Arguments = (*mut crate::QRenderTargetOutput,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderTargetOutput *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQRenderTargetOutput {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QRenderTargetOutput,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QRenderTargetOutput,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QRenderTargetOutput`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderTargetOutput*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQRenderTargetOutput {
    _unused: u8,
}
impl SignalOfQRenderTargetOutput {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QRenderTargetOutput,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderTargetOutput *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTargetOutput>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_emit_(self as *const crate::SignalOfQRenderTargetOutput as *mut crate::SignalOfQRenderTargetOutput, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTargetOutput>>::cast_into(arg0).as_raw_ptr() as *mut crate::QRenderTargetOutput)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_metaObject(self as *const crate::SignalOfQRenderTargetOutput)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_qt_metacall(self as *const crate::SignalOfQRenderTargetOutput as *mut crate::SignalOfQRenderTargetOutput, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_qt_metacast(self as *const crate::SignalOfQRenderTargetOutput as *mut crate::SignalOfQRenderTargetOutput, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfAccessType {
    type Arguments = (crate::q_buffer::AccessType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBuffer::AccessType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfAccessType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_buffer::AccessType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_buffer::AccessType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_buffer::AccessType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer::AccessType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfAccessType {
    _unused: u8,
}
impl SignalOfAccessType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_buffer::AccessType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBuffer::AccessType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_buffer::AccessType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_emit_(self as *const crate::SignalOfAccessType as *mut crate::SignalOfAccessType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_metaObject(self as *const crate::SignalOfAccessType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfAccessType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_qt_metacall(self as *const crate::SignalOfAccessType as *mut crate::SignalOfAccessType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_qt_metacast(self as *const crate::SignalOfAccessType as *mut crate::SignalOfAccessType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfPrimitiveType {
    type Arguments = (crate::q_geometry_renderer::PrimitiveType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGeometryRenderer::PrimitiveType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfPrimitiveType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_geometry_renderer::PrimitiveType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_geometry_renderer::PrimitiveType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_geometry_renderer::PrimitiveType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGeometryRenderer::PrimitiveType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfPrimitiveType {
    _unused: u8,
}
impl SignalOfPrimitiveType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_geometry_renderer::PrimitiveType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGeometryRenderer::PrimitiveType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_geometry_renderer::PrimitiveType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_emit_(self as *const crate::SignalOfPrimitiveType as *mut crate::SignalOfPrimitiveType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_metaObject(self as *const crate::SignalOfPrimitiveType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfPrimitiveType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_qt_metacall(self as *const crate::SignalOfPrimitiveType as *mut crate::SignalOfPrimitiveType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_qt_metacast(self as *const crate::SignalOfPrimitiveType as *mut crate::SignalOfPrimitiveType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQLevelOfDetailBoundingSphere {
    type Arguments = (*const crate::QLevelOfDetailBoundingSphere,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QLevelOfDetailBoundingSphere const &)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQLevelOfDetailBoundingSphere {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const crate::QLevelOfDetailBoundingSphere,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const crate::QLevelOfDetailBoundingSphere,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const crate::QLevelOfDetailBoundingSphere`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const Qt3DRender::QLevelOfDetailBoundingSphere&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQLevelOfDetailBoundingSphere {
    _unused: u8,
}
impl SignalOfQLevelOfDetailBoundingSphere {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const crate::QLevelOfDetailBoundingSphere,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QLevelOfDetailBoundingSphere const &)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_emit_(self as *const crate::SignalOfQLevelOfDetailBoundingSphere as *mut crate::SignalOfQLevelOfDetailBoundingSphere, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_metaObject(self as *const crate::SignalOfQLevelOfDetailBoundingSphere)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_qt_metacall(self as *const crate::SignalOfQLevelOfDetailBoundingSphere as *mut crate::SignalOfQLevelOfDetailBoundingSphere, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_qt_metacast(self as *const crate::SignalOfQLevelOfDetailBoundingSphere as *mut crate::SignalOfQLevelOfDetailBoundingSphere, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfPickMethod {
    type Arguments = (crate::q_picking_settings::PickMethod,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickingSettings::PickMethod)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfPickMethod {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_picking_settings::PickMethod,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_picking_settings::PickMethod,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_picking_settings::PickMethod`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickingSettings::PickMethod```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfPickMethod {
    _unused: u8,
}
impl SignalOfPickMethod {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_picking_settings::PickMethod,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickingSettings::PickMethod)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_picking_settings::PickMethod) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_emit_(self as *const crate::SignalOfPickMethod as *mut crate::SignalOfPickMethod, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_metaObject(self as *const crate::SignalOfPickMethod)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfPickMethod> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_qt_metacall(self as *const crate::SignalOfPickMethod as *mut crate::SignalOfPickMethod, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_qt_metacast(self as *const crate::SignalOfPickMethod as *mut crate::SignalOfPickMethod, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfSizeMode {
    type Arguments = (crate::q_point_size::SizeMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPointSize::SizeMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfSizeMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_point_size::SizeMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_point_size::SizeMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_point_size::SizeMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPointSize::SizeMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfSizeMode {
    _unused: u8,
}
impl SignalOfSizeMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_point_size::SizeMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPointSize::SizeMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_point_size::SizeMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_emit_(self as *const crate::SignalOfSizeMode as *mut crate::SignalOfSizeMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_metaObject(self as *const crate::SignalOfSizeMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfSizeMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_qt_metacall(self as *const crate::SignalOfSizeMode as *mut crate::SignalOfSizeMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_qt_metacast(self as *const crate::SignalOfSizeMode as *mut crate::SignalOfSizeMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfOperation {
    type Arguments = (crate::q_stencil_operation_arguments::Operation,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilOperationArguments::Operation)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfOperation {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_operation_arguments::Operation,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_operation_arguments::Operation,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_stencil_operation_arguments::Operation`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilOperationArguments::Operation```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfOperation {
    _unused: u8,
}
impl SignalOfOperation {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_stencil_operation_arguments::Operation,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilOperationArguments::Operation)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_stencil_operation_arguments::Operation) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_emit_(self as *const crate::SignalOfOperation as *mut crate::SignalOfOperation, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_metaObject(self as *const crate::SignalOfOperation)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_qt_metacall(self as *const crate::SignalOfOperation as *mut crate::SignalOfOperation, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_qt_metacast(self as *const crate::SignalOfOperation as *mut crate::SignalOfOperation, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQPoint {
    type Arguments = (*const ::qt_core::QPoint,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QPoint const &)\0"),
            )
        }
    }
}

impl crate::SignalOfQPoint {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QPoint,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QPoint,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_core::QPoint`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QPoint&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQPoint {
    _unused: u8,
}
impl SignalOfQPoint {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_core::QPoint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QPoint const &)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_emit_(self as *const crate::SignalOfQPoint as *mut crate::SignalOfQPoint, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_metaObject(self as *const crate::SignalOfQPoint)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_qt_metacall(self as *const crate::SignalOfQPoint as *mut crate::SignalOfQPoint, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_qt_metacast(self as *const crate::SignalOfQPoint as *mut crate::SignalOfQPoint, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQVariant {
    type Arguments = (*const ::qt_core::QVariant,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QVariant)\0"),
            )
        }
    }
}

impl crate::SignalOfQVariant {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QVariant,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QVariant,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_core::QVariant`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QVariant```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQVariant {
    _unused: u8,
}
impl SignalOfQVariant {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_core::QVariant,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QVariant)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_emit_(
            self as *const crate::SignalOfQVariant as *mut crate::SignalOfQVariant,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_metaObject(self as *const crate::SignalOfQVariant)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_ctr_qt_3d_render_ffi_signal_wrapper_QVariant()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_qt_metacall(
            self as *const crate::SignalOfQVariant as *mut crate::SignalOfQVariant,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_qt_metacast(
            self as *const crate::SignalOfQVariant as *mut crate::SignalOfQVariant,
            arg1,
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQFlagsOperation {
    type Arguments = (::std::os::raw::c_int,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QFlags< Qt3DRender::QMemoryBarrier::Operation >)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQFlagsOperation {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (::std::os::raw::c_int,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (::std::os::raw::c_int,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `::std::os::raw::c_int`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QFlags<Qt3DRender::QMemoryBarrier::Operation>```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQFlagsOperation {
    _unused: u8,
}
impl SignalOfQFlagsOperation {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(::std::os::raw::c_int,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QFlags< Qt3DRender::QMemoryBarrier::Operation >)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: ::qt_core::QFlags<crate::q_memory_barrier::Operation>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_emit_(self as *const crate::SignalOfQFlagsOperation as *mut crate::SignalOfQFlagsOperation, arg0.to_int())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_metaObject(self as *const crate::SignalOfQFlagsOperation)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQFlagsOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_qt_metacall(self as *const crate::SignalOfQFlagsOperation as *mut crate::SignalOfQFlagsOperation, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_qt_metacast(self as *const crate::SignalOfQFlagsOperation as *mut crate::SignalOfQFlagsOperation, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SignalOfRunMode {
    type Arguments = (crate::q_abstract_ray_caster::RunMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractRayCaster::RunMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfRunMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_ray_caster::RunMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_ray_caster::RunMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_ray_caster::RunMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractRayCaster::RunMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfRunMode {
    _unused: u8,
}
impl SignalOfRunMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_ray_caster::RunMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractRayCaster::RunMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_ray_caster::RunMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_emit_(self as *const crate::SignalOfRunMode as *mut crate::SignalOfRunMode, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_metaObject(self as *const crate::SignalOfRunMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfRunMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_qt_metacall(self as *const crate::SignalOfRunMode as *mut crate::SignalOfRunMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_qt_metacast(self as *const crate::SignalOfRunMode as *mut crate::SignalOfRunMode, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SignalOfHandleType {
    type Arguments = (crate::q_set_fence::HandleType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QSetFence::HandleType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfHandleType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_set_fence::HandleType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_set_fence::HandleType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_set_fence::HandleType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QSetFence::HandleType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfHandleType {
    _unused: u8,
}
impl SignalOfHandleType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_set_fence::HandleType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QSetFence::HandleType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn emit(&self, arg0: crate::q_set_fence::HandleType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_emit_(self as *const crate::SignalOfHandleType as *mut crate::SignalOfHandleType, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_metaObject(self as *const crate::SignalOfHandleType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfHandleType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_qt_metacall(self as *const crate::SignalOfHandleType as *mut crate::SignalOfHandleType, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_qt_metacast(self as *const crate::SignalOfHandleType as *mut crate::SignalOfHandleType, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfU64 {
    type Arguments = (u64,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(quint64)\0"),
            )
        }
    }
}

impl crate::SignalOfU64 {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (u64,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (u64,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `u64`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```quint64```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfU64 {
    _unused: u8,
}
impl SignalOfU64 {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(u64,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(quint64)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: u64) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_emit_(
            self as *const crate::SignalOfU64 as *mut crate::SignalOfU64,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_metaObject(self as *const crate::SignalOfU64)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfU64> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_ctr_qt_3d_render_ffi_signal_wrapper_quint64()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_qt_metacall(
            self as *const crate::SignalOfU64 as *mut crate::SignalOfU64,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_qt_metacast(
            self as *const crate::SignalOfU64 as *mut crate::SignalOfU64,
            arg1,
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQRenderTarget {
    type Arguments = (*mut crate::QRenderTarget,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderTarget *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQRenderTarget {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QRenderTarget,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QRenderTarget,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QRenderTarget`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderTarget*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQRenderTarget {
    _unused: u8,
}
impl SignalOfQRenderTarget {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QRenderTarget,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderTarget *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTarget>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_emit_(self as *const crate::SignalOfQRenderTarget as *mut crate::SignalOfQRenderTarget, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTarget>>::cast_into(arg0).as_raw_ptr() as *mut crate::QRenderTarget)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_metaObject(self as *const crate::SignalOfQRenderTarget)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_qt_metacall(self as *const crate::SignalOfQRenderTarget as *mut crate::SignalOfQRenderTarget, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_qt_metacast(self as *const crate::SignalOfQRenderTarget as *mut crate::SignalOfQRenderTarget, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfStatus {
    type Arguments = (crate::q_shader_program::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderProgram::Status)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfStatus {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_shader_program::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_shader_program::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_shader_program::Status`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderProgram::Status```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfStatus {
    _unused: u8,
}
impl SignalOfStatus {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_shader_program::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderProgram::Status)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_shader_program::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_emit_(self as *const crate::SignalOfStatus as *mut crate::SignalOfStatus, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_metaObject(self as *const crate::SignalOfStatus)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfStatus> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_qt_metacall(self as *const crate::SignalOfStatus as *mut crate::SignalOfStatus, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_qt_metacast(self as *const crate::SignalOfStatus as *mut crate::SignalOfStatus, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfBufferType {
    type Arguments = (crate::q_buffer::BufferType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBuffer::BufferType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfBufferType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_buffer::BufferType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_buffer::BufferType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_buffer::BufferType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer::BufferType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfBufferType {
    _unused: u8,
}
impl SignalOfBufferType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_buffer::BufferType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBuffer::BufferType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_buffer::BufferType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_emit_(self as *const crate::SignalOfBufferType as *mut crate::SignalOfBufferType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_metaObject(self as *const crate::SignalOfBufferType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfBufferType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_qt_metacall(self as *const crate::SignalOfBufferType as *mut crate::SignalOfBufferType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_qt_metacast(self as *const crate::SignalOfBufferType as *mut crate::SignalOfBufferType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfAttributeType {
    type Arguments = (crate::q_attribute::AttributeType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAttribute::AttributeType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfAttributeType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_attribute::AttributeType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_attribute::AttributeType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_attribute::AttributeType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAttribute::AttributeType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfAttributeType {
    _unused: u8,
}
impl SignalOfAttributeType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_attribute::AttributeType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAttribute::AttributeType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_attribute::AttributeType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_emit_(self as *const crate::SignalOfAttributeType as *mut crate::SignalOfAttributeType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_metaObject(self as *const crate::SignalOfAttributeType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfAttributeType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_qt_metacall(self as *const crate::SignalOfAttributeType as *mut crate::SignalOfAttributeType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_qt_metacast(self as *const crate::SignalOfAttributeType as *mut crate::SignalOfAttributeType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQVectorOfInt {
    type Arguments = (*const ::qt_core::QVectorOfInt,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< int > const &)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQVectorOfInt {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QVectorOfInt,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QVectorOfInt,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_core::QVectorOfInt`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<int>&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQVectorOfInt {
    _unused: u8,
}
impl SignalOfQVectorOfInt {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_core::QVectorOfInt,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< int > const &)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfInt>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_emit_(self as *const crate::SignalOfQVectorOfInt as *mut crate::SignalOfQVectorOfInt, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfInt>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_metaObject(self as *const crate::SignalOfQVectorOfInt)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQVectorOfInt> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_qt_metacall(self as *const crate::SignalOfQVectorOfInt as *mut crate::SignalOfQVectorOfInt, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_qt_metacast(self as *const crate::SignalOfQVectorOfInt as *mut crate::SignalOfQVectorOfInt, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQFrameGraphNode {
    type Arguments = (*mut crate::QFrameGraphNode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QFrameGraphNode *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQFrameGraphNode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QFrameGraphNode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QFrameGraphNode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QFrameGraphNode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QFrameGraphNode*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQFrameGraphNode {
    _unused: u8,
}
impl SignalOfQFrameGraphNode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QFrameGraphNode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QFrameGraphNode *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFrameGraphNode>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_emit_(self as *const crate::SignalOfQFrameGraphNode as *mut crate::SignalOfQFrameGraphNode, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFrameGraphNode>>::cast_into(arg0).as_raw_ptr() as *mut crate::QFrameGraphNode)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_metaObject(self as *const crate::SignalOfQFrameGraphNode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_qt_metacall(self as *const crate::SignalOfQFrameGraphNode as *mut crate::SignalOfQFrameGraphNode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_qt_metacast(self as *const crate::SignalOfQFrameGraphNode as *mut crate::SignalOfQFrameGraphNode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfStatus2 {
    type Arguments = (crate::q_texture_image::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QTextureImage::Status)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfStatus2 {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_texture_image::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_texture_image::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_texture_image::Status`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QTextureImage::Status```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfStatus2 {
    _unused: u8,
}
impl SignalOfStatus2 {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_texture_image::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QTextureImage::Status)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_texture_image::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_emit_(self as *const crate::SignalOfStatus2 as *mut crate::SignalOfStatus2, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_metaObject(self as *const crate::SignalOfStatus2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfStatus2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_qt_metacall(self as *const crate::SignalOfStatus2 as *mut crate::SignalOfStatus2, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_qt_metacast(self as *const crate::SignalOfStatus2 as *mut crate::SignalOfStatus2, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SignalOfQVectorOfQRayCasterHit {
    type Arguments = (*const crate::QVectorOfQRayCasterHit,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< Qt3DRender::QRayCasterHit > const &)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQVectorOfQRayCasterHit {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const crate::QVectorOfQRayCasterHit,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const crate::QVectorOfQRayCasterHit,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const crate::QVectorOfQRayCasterHit`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<Qt3DRender::QRayCasterHit>&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQVectorOfQRayCasterHit {
    _unused: u8,
}
impl SignalOfQVectorOfQRayCasterHit {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn signal(&self) -> ::qt_core::Signal<(*const crate::QVectorOfQRayCasterHit,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< Qt3DRender::QRayCasterHit > const &)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_emit_(self as *const crate::SignalOfQVectorOfQRayCasterHit as *mut crate::SignalOfQVectorOfQRayCasterHit, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_metaObject(self as *const crate::SignalOfQVectorOfQRayCasterHit)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_qt_metacall(self as *const crate::SignalOfQVectorOfQRayCasterHit as *mut crate::SignalOfQVectorOfQRayCasterHit, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_qt_metacast(self as *const crate::SignalOfQVectorOfQRayCasterHit as *mut crate::SignalOfQVectorOfQRayCasterHit, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfBlendFunction {
    type Arguments = (crate::q_blend_equation::BlendFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBlendEquation::BlendFunction)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfBlendFunction {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_blend_equation::BlendFunction,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_blend_equation::BlendFunction,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_blend_equation::BlendFunction`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBlendEquation::BlendFunction```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfBlendFunction {
    _unused: u8,
}
impl SignalOfBlendFunction {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_blend_equation::BlendFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QBlendEquation::BlendFunction)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_blend_equation::BlendFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_emit_(self as *const crate::SignalOfBlendFunction as *mut crate::SignalOfBlendFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_metaObject(self as *const crate::SignalOfBlendFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfBlendFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_qt_metacall(self as *const crate::SignalOfBlendFunction as *mut crate::SignalOfBlendFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_qt_metacast(self as *const crate::SignalOfBlendFunction as *mut crate::SignalOfBlendFunction, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfApi {
    type Arguments = (crate::q_graphics_api_filter::Api,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGraphicsApiFilter::Api)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfApi {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_graphics_api_filter::Api,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_graphics_api_filter::Api,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_graphics_api_filter::Api`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::Api```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfApi {
    _unused: u8,
}
impl SignalOfApi {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_graphics_api_filter::Api,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGraphicsApiFilter::Api)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_graphics_api_filter::Api) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_emit_(self as *const crate::SignalOfApi as *mut crate::SignalOfApi, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_metaObject(self as *const crate::SignalOfApi)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfApi> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_qt_metacall(self as *const crate::SignalOfApi as *mut crate::SignalOfApi, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_qt_metacast(self as *const crate::SignalOfApi as *mut crate::SignalOfApi, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfThresholdType {
    type Arguments = (crate::q_level_of_detail::ThresholdType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QLevelOfDetail::ThresholdType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfThresholdType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_level_of_detail::ThresholdType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_level_of_detail::ThresholdType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_level_of_detail::ThresholdType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QLevelOfDetail::ThresholdType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfThresholdType {
    _unused: u8,
}
impl SignalOfThresholdType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_level_of_detail::ThresholdType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QLevelOfDetail::ThresholdType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_level_of_detail::ThresholdType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_emit_(self as *const crate::SignalOfThresholdType as *mut crate::SignalOfThresholdType, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_metaObject(self as *const crate::SignalOfThresholdType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfThresholdType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_qt_metacall(self as *const crate::SignalOfThresholdType as *mut crate::SignalOfThresholdType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_qt_metacast(self as *const crate::SignalOfThresholdType as *mut crate::SignalOfThresholdType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SignalOfFilterMode {
    type Arguments = (crate::q_abstract_ray_caster::FilterMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractRayCaster::FilterMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfFilterMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_ray_caster::FilterMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_ray_caster::FilterMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_ray_caster::FilterMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractRayCaster::FilterMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfFilterMode {
    _unused: u8,
}
impl SignalOfFilterMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_ray_caster::FilterMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractRayCaster::FilterMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_ray_caster::FilterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_emit_(self as *const crate::SignalOfFilterMode as *mut crate::SignalOfFilterMode, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_metaObject(self as *const crate::SignalOfFilterMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfFilterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_qt_metacall(self as *const crate::SignalOfFilterMode as *mut crate::SignalOfFilterMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_qt_metacast(self as *const crate::SignalOfFilterMode as *mut crate::SignalOfFilterMode, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQBuffer {
    type Arguments = (*mut crate::QBuffer,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(Qt3DRender::QBuffer *)\0"),
            )
        }
    }
}

impl crate::SignalOfQBuffer {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QBuffer,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QBuffer,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QBuffer`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQBuffer {
    _unused: u8,
}
impl SignalOfQBuffer {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QBuffer,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(Qt3DRender::QBuffer *)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_emit_(self as *const crate::SignalOfQBuffer as *mut crate::SignalOfQBuffer, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(arg0).as_raw_ptr() as *mut crate::QBuffer)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_metaObject(self as *const crate::SignalOfQBuffer)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_qt_metacall(self as *const crate::SignalOfQBuffer as *mut crate::SignalOfQBuffer, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_qt_metacast(self as *const crate::SignalOfQBuffer as *mut crate::SignalOfQBuffer, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQAbstractTexture {
    type Arguments = (*mut crate::QAbstractTexture,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQAbstractTexture {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QAbstractTexture,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QAbstractTexture,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QAbstractTexture`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQAbstractTexture {
    _unused: u8,
}
impl SignalOfQAbstractTexture {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QAbstractTexture,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_emit_(self as *const crate::SignalOfQAbstractTexture as *mut crate::SignalOfQAbstractTexture, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(arg0).as_raw_ptr() as *mut crate::QAbstractTexture)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_metaObject(self as *const crate::SignalOfQAbstractTexture)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_qt_metacall(self as *const crate::SignalOfQAbstractTexture as *mut crate::SignalOfQAbstractTexture, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_qt_metacast(self as *const crate::SignalOfQAbstractTexture as *mut crate::SignalOfQAbstractTexture, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SignalOfImageFormat {
    type Arguments = (crate::q_shader_image::ImageFormat,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderImage::ImageFormat)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfImageFormat {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_shader_image::ImageFormat,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_shader_image::ImageFormat,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_shader_image::ImageFormat`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderImage::ImageFormat```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfImageFormat {
    _unused: u8,
}
impl SignalOfImageFormat {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_shader_image::ImageFormat,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderImage::ImageFormat)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn emit(&self, arg0: crate::q_shader_image::ImageFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_emit_(self as *const crate::SignalOfImageFormat as *mut crate::SignalOfImageFormat, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_metaObject(self as *const crate::SignalOfImageFormat)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfImageFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_qt_metacall(self as *const crate::SignalOfImageFormat as *mut crate::SignalOfImageFormat, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_qt_metacast(self as *const crate::SignalOfImageFormat as *mut crate::SignalOfImageFormat, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQShaderProgram {
    type Arguments = (*mut crate::QShaderProgram,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderProgram *)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQShaderProgram {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QShaderProgram,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*mut crate::QShaderProgram,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*mut crate::QShaderProgram`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderProgram*```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQShaderProgram {
    _unused: u8,
}
impl SignalOfQShaderProgram {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*mut crate::QShaderProgram,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QShaderProgram *)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QShaderProgram>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_emit_(self as *const crate::SignalOfQShaderProgram as *mut crate::SignalOfQShaderProgram, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QShaderProgram>>::cast_into(arg0).as_raw_ptr() as *mut crate::QShaderProgram)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_metaObject(self as *const crate::SignalOfQShaderProgram)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_qt_metacall(self as *const crate::SignalOfQShaderProgram as *mut crate::SignalOfQShaderProgram, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_qt_metacast(self as *const crate::SignalOfQShaderProgram as *mut crate::SignalOfQShaderProgram, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfStatus3 {
    type Arguments = (crate::q_abstract_texture::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::Status)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfStatus3 {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_texture::Status`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::Status```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfStatus3 {
    _unused: u8,
}
impl SignalOfStatus3 {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::Status)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_texture::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_emit_(self as *const crate::SignalOfStatus3 as *mut crate::SignalOfStatus3, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_metaObject(self as *const crate::SignalOfStatus3)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfStatus3> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_qt_metacall(self as *const crate::SignalOfStatus3 as *mut crate::SignalOfStatus3, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_qt_metacast(self as *const crate::SignalOfStatus3 as *mut crate::SignalOfStatus3, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfDepthFunction {
    type Arguments = (crate::q_depth_test::DepthFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QDepthTest::DepthFunction)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfDepthFunction {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_depth_test::DepthFunction,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_depth_test::DepthFunction,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_depth_test::DepthFunction`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QDepthTest::DepthFunction```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfDepthFunction {
    _unused: u8,
}
impl SignalOfDepthFunction {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_depth_test::DepthFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QDepthTest::DepthFunction)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_depth_test::DepthFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_emit_(self as *const crate::SignalOfDepthFunction as *mut crate::SignalOfDepthFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_metaObject(self as *const crate::SignalOfDepthFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfDepthFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_qt_metacall(self as *const crate::SignalOfDepthFunction as *mut crate::SignalOfDepthFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_qt_metacast(self as *const crate::SignalOfDepthFunction as *mut crate::SignalOfDepthFunction, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfWindingDirection {
    type Arguments = (crate::q_front_face::WindingDirection,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QFrontFace::WindingDirection)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfWindingDirection {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_front_face::WindingDirection,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_front_face::WindingDirection,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_front_face::WindingDirection`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QFrontFace::WindingDirection```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfWindingDirection {
    _unused: u8,
}
impl SignalOfWindingDirection {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_front_face::WindingDirection,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QFrontFace::WindingDirection)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_front_face::WindingDirection) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_emit_(self as *const crate::SignalOfWindingDirection as *mut crate::SignalOfWindingDirection, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_metaObject(self as *const crate::SignalOfWindingDirection)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfWindingDirection> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_qt_metacall(self as *const crate::SignalOfWindingDirection as *mut crate::SignalOfWindingDirection, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_qt_metacast(self as *const crate::SignalOfWindingDirection as *mut crate::SignalOfWindingDirection, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfStencilFunction {
    type Arguments = (crate::q_stencil_test_arguments::StencilFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilTestArguments::StencilFunction)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfStencilFunction {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_test_arguments::StencilFunction,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_stencil_test_arguments::StencilFunction,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_stencil_test_arguments::StencilFunction`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFunction```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfStencilFunction {
    _unused: u8,
}
impl SignalOfStencilFunction {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_stencil_test_arguments::StencilFunction,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QStencilTestArguments::StencilFunction)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_stencil_test_arguments::StencilFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_emit_(self as *const crate::SignalOfStencilFunction as *mut crate::SignalOfStencilFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_metaObject(self as *const crate::SignalOfStencilFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfStencilFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_qt_metacall(self as *const crate::SignalOfStencilFunction as *mut crate::SignalOfStencilFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_qt_metacast(self as *const crate::SignalOfStencilFunction as *mut crate::SignalOfStencilFunction, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfComparisonMode {
    type Arguments = (crate::q_abstract_texture::ComparisonMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::ComparisonMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfComparisonMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::ComparisonMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::ComparisonMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_texture::ComparisonMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfComparisonMode {
    _unused: u8,
}
impl SignalOfComparisonMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::ComparisonMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::ComparisonMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_texture::ComparisonMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_emit_(self as *const crate::SignalOfComparisonMode as *mut crate::SignalOfComparisonMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_metaObject(self as *const crate::SignalOfComparisonMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfComparisonMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_qt_metacall(self as *const crate::SignalOfComparisonMode as *mut crate::SignalOfComparisonMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_qt_metacast(self as *const crate::SignalOfComparisonMode as *mut crate::SignalOfComparisonMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfBufferType2 {
    type Arguments = (crate::q_clear_buffers::BufferType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QClearBuffers::BufferType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfBufferType2 {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_clear_buffers::BufferType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_clear_buffers::BufferType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_clear_buffers::BufferType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QClearBuffers::BufferType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfBufferType2 {
    _unused: u8,
}
impl SignalOfBufferType2 {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_clear_buffers::BufferType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QClearBuffers::BufferType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_clear_buffers::BufferType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_emit_(self as *const crate::SignalOfBufferType2 as *mut crate::SignalOfBufferType2, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_metaObject(self as *const crate::SignalOfBufferType2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfBufferType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_qt_metacall(self as *const crate::SignalOfBufferType2 as *mut crate::SignalOfBufferType2, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_qt_metacast(self as *const crate::SignalOfBufferType2 as *mut crate::SignalOfBufferType2, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQVectorOfSortType {
    type Arguments = (*const crate::QVectorOfSortType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< Qt3DRender::QSortPolicy::SortType > const &)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfQVectorOfSortType {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const crate::QVectorOfSortType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const crate::QVectorOfSortType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const crate::QVectorOfSortType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<Qt3DRender::QSortPolicy::SortType>&```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQVectorOfSortType {
    _unused: u8,
}
impl SignalOfQVectorOfSortType {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const crate::QVectorOfSortType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(QVector< Qt3DRender::QSortPolicy::SortType > const &)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_emit_(self as *const crate::SignalOfQVectorOfSortType as *mut crate::SignalOfQVectorOfSortType, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_metaObject(self as *const crate::SignalOfQVectorOfSortType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_qt_metacall(self as *const crate::SignalOfQVectorOfSortType as *mut crate::SignalOfQVectorOfSortType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_qt_metacast(self as *const crate::SignalOfQVectorOfSortType as *mut crate::SignalOfQVectorOfSortType, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfUint {
    type Arguments = (::std::os::raw::c_uint,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(unsigned int)\0"),
            )
        }
    }
}

impl crate::SignalOfUint {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (::std::os::raw::c_uint,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (::std::os::raw::c_uint,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `::std::os::raw::c_uint`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```unsigned int```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfUint {
    _unused: u8,
}
impl SignalOfUint {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(::std::os::raw::c_uint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(unsigned int)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_emit_(
            self as *const crate::SignalOfUint as *mut crate::SignalOfUint,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_metaObject(self as *const crate::SignalOfUint)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfUint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_qt_metacall(self as *const crate::SignalOfUint as *mut crate::SignalOfUint, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_qt_metacast(self as *const crate::SignalOfUint as *mut crate::SignalOfUint, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfStatus4 {
    type Arguments = (crate::q_scene_loader::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QSceneLoader::Status)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfStatus4 {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_scene_loader::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_scene_loader::Status,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_scene_loader::Status`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QSceneLoader::Status```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfStatus4 {
    _unused: u8,
}
impl SignalOfStatus4 {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_scene_loader::Status,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QSceneLoader::Status)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_scene_loader::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_emit_(self as *const crate::SignalOfStatus4 as *mut crate::SignalOfStatus4, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_metaObject(self as *const crate::SignalOfStatus4)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfStatus4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_qt_metacall(self as *const crate::SignalOfStatus4 as *mut crate::SignalOfStatus4, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_qt_metacast(self as *const crate::SignalOfStatus4 as *mut crate::SignalOfStatus4, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfTextureFormat {
    type Arguments = (crate::q_abstract_texture::TextureFormat,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::TextureFormat)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfTextureFormat {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::TextureFormat,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::TextureFormat,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_texture::TextureFormat`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::TextureFormat```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfTextureFormat {
    _unused: u8,
}
impl SignalOfTextureFormat {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::TextureFormat,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::TextureFormat)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_texture::TextureFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_emit_(self as *const crate::SignalOfTextureFormat as *mut crate::SignalOfTextureFormat, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_metaObject(self as *const crate::SignalOfTextureFormat)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfTextureFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_qt_metacall(self as *const crate::SignalOfTextureFormat as *mut crate::SignalOfTextureFormat, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_qt_metacast(self as *const crate::SignalOfTextureFormat as *mut crate::SignalOfTextureFormat, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfPickResultMode {
    type Arguments = (crate::q_picking_settings::PickResultMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickingSettings::PickResultMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfPickResultMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_picking_settings::PickResultMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_picking_settings::PickResultMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_picking_settings::PickResultMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickingSettings::PickResultMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfPickResultMode {
    _unused: u8,
}
impl SignalOfPickResultMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_picking_settings::PickResultMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickingSettings::PickResultMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_picking_settings::PickResultMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_emit_(self as *const crate::SignalOfPickResultMode as *mut crate::SignalOfPickResultMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_metaObject(self as *const crate::SignalOfPickResultMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfPickResultMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_qt_metacall(self as *const crate::SignalOfPickResultMode as *mut crate::SignalOfPickResultMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_qt_metacast(self as *const crate::SignalOfPickResultMode as *mut crate::SignalOfPickResultMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfFaceOrientationPickingMode {
    type Arguments = (crate::q_picking_settings::FaceOrientationPickingMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickingSettings::FaceOrientationPickingMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfFaceOrientationPickingMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_picking_settings::FaceOrientationPickingMode,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_picking_settings::FaceOrientationPickingMode,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_picking_settings::FaceOrientationPickingMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickingSettings::FaceOrientationPickingMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfFaceOrientationPickingMode {
    _unused: u8,
}
impl SignalOfFaceOrientationPickingMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(
        &self,
    ) -> ::qt_core::Signal<(crate::q_picking_settings::FaceOrientationPickingMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QPickingSettings::FaceOrientationPickingMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_picking_settings::FaceOrientationPickingMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_emit_(self as *const crate::SignalOfFaceOrientationPickingMode as *mut crate::SignalOfFaceOrientationPickingMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_metaObject(self as *const crate::SignalOfFaceOrientationPickingMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfFaceOrientationPickingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_qt_metacall(self as *const crate::SignalOfFaceOrientationPickingMode as *mut crate::SignalOfFaceOrientationPickingMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_qt_metacast(self as *const crate::SignalOfFaceOrientationPickingMode as *mut crate::SignalOfFaceOrientationPickingMode, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfAttachmentPoint {
    type Arguments = (crate::q_render_target_output::AttachmentPoint,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderTargetOutput::AttachmentPoint)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfAttachmentPoint {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_render_target_output::AttachmentPoint,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_render_target_output::AttachmentPoint,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_render_target_output::AttachmentPoint`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfAttachmentPoint {
    _unused: u8,
}
impl SignalOfAttachmentPoint {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_render_target_output::AttachmentPoint,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRenderTargetOutput::AttachmentPoint)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_render_target_output::AttachmentPoint) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_emit_(self as *const crate::SignalOfAttachmentPoint as *mut crate::SignalOfAttachmentPoint, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_metaObject(self as *const crate::SignalOfAttachmentPoint)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_qt_metacall(self as *const crate::SignalOfAttachmentPoint as *mut crate::SignalOfAttachmentPoint, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_qt_metacast(self as *const crate::SignalOfAttachmentPoint as *mut crate::SignalOfAttachmentPoint, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SignalOfHandleType2 {
    type Arguments = (crate::q_wait_fence::HandleType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QWaitFence::HandleType)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfHandleType2 {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_wait_fence::HandleType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_wait_fence::HandleType,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_wait_fence::HandleType`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QWaitFence::HandleType```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfHandleType2 {
    _unused: u8,
}
impl SignalOfHandleType2 {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_wait_fence::HandleType,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QWaitFence::HandleType)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn emit(&self, arg0: crate::q_wait_fence::HandleType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_emit_(self as *const crate::SignalOfHandleType2 as *mut crate::SignalOfHandleType2, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_metaObject(self as *const crate::SignalOfHandleType2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfHandleType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_qt_metacall(self as *const crate::SignalOfHandleType2 as *mut crate::SignalOfHandleType2, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_qt_metacast(self as *const crate::SignalOfHandleType2 as *mut crate::SignalOfHandleType2, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfOpenglProfile {
    type Arguments = (crate::q_graphics_api_filter::OpenGLProfile,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGraphicsApiFilter::OpenGLProfile)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfOpenglProfile {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_graphics_api_filter::OpenGLProfile,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_graphics_api_filter::OpenGLProfile,):
            ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_graphics_api_filter::OpenGLProfile`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::OpenGLProfile```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfOpenglProfile {
    _unused: u8,
}
impl SignalOfOpenglProfile {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_graphics_api_filter::OpenGLProfile,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QGraphicsApiFilter::OpenGLProfile)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_graphics_api_filter::OpenGLProfile) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_emit_(self as *const crate::SignalOfOpenglProfile as *mut crate::SignalOfOpenglProfile, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_metaObject(self as *const crate::SignalOfOpenglProfile)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfOpenglProfile> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_qt_metacall(self as *const crate::SignalOfOpenglProfile as *mut crate::SignalOfOpenglProfile, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_qt_metacast(self as *const crate::SignalOfOpenglProfile as *mut crate::SignalOfOpenglProfile, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SignalOfFaceMode2 {
    type Arguments = (crate::q_raster_mode::FaceMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRasterMode::FaceMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfFaceMode2 {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_raster_mode::FaceMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_raster_mode::FaceMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_raster_mode::FaceMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRasterMode::FaceMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfFaceMode2 {
    _unused: u8,
}
impl SignalOfFaceMode2 {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_raster_mode::FaceMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRasterMode::FaceMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn emit(&self, arg0: crate::q_raster_mode::FaceMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_emit_(self as *const crate::SignalOfFaceMode2 as *mut crate::SignalOfFaceMode2, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_metaObject(self as *const crate::SignalOfFaceMode2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfFaceMode2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_qt_metacall(self as *const crate::SignalOfFaceMode2 as *mut crate::SignalOfFaceMode2, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_qt_metacast(self as *const crate::SignalOfFaceMode2 as *mut crate::SignalOfFaceMode2, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfFilter {
    type Arguments = (crate::q_abstract_texture::Filter,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::Filter)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfFilter {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::Filter,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_abstract_texture::Filter,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_abstract_texture::Filter`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::Filter```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfFilter {
    _unused: u8,
}
impl SignalOfFilter {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_abstract_texture::Filter,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QAbstractTexture::Filter)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: crate::q_abstract_texture::Filter) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_emit_(self as *const crate::SignalOfFilter as *mut crate::SignalOfFilter, arg0)
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_metaObject(self as *const crate::SignalOfFilter)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_qt_metacall(self as *const crate::SignalOfFilter as *mut crate::SignalOfFilter, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_qt_metacast(self as *const crate::SignalOfFilter as *mut crate::SignalOfFilter, arg1)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQVector3D {
    type Arguments = (*const ::qt_gui::QVector3D,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QVector3D)\0"),
            )
        }
    }
}

impl crate::SignalOfQVector3D {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_gui::QVector3D,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_gui::QVector3D,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_gui::QVector3D`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QVector3D```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQVector3D {
    _unused: u8,
}
impl SignalOfQVector3D {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_gui::QVector3D,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QVector3D)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_emit_(
            self as *const crate::SignalOfQVector3D as *mut crate::SignalOfQVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_metaObject(self as *const crate::SignalOfQVector3D)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_qt_metacall(
            self as *const crate::SignalOfQVector3D as *mut crate::SignalOfQVector3D,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_qt_metacast(
            self as *const crate::SignalOfQVector3D as *mut crate::SignalOfQVector3D,
            arg1,
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SignalOfRasterMode {
    type Arguments = (crate::q_raster_mode::RasterMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRasterMode::RasterMode)\0",
                ),
            )
        }
    }
}

impl crate::SignalOfRasterMode {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_raster_mode::RasterMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (crate::q_raster_mode::RasterMode,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `crate::q_raster_mode::RasterMode`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRasterMode::RasterMode```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfRasterMode {
    _unused: u8,
}
impl SignalOfRasterMode {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub fn signal(&self) -> ::qt_core::Signal<(crate::q_raster_mode::RasterMode,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"2emit_(Qt3DRender::QRasterMode::RasterMode)\0",
                ),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn emit(&self, arg0: crate::q_raster_mode::RasterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_emit_(self as *const crate::SignalOfRasterMode as *mut crate::SignalOfRasterMode, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_metaObject(self as *const crate::SignalOfRasterMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_qt_metacall(self as *const crate::SignalOfRasterMode as *mut crate::SignalOfRasterMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_qt_metacast(self as *const crate::SignalOfRasterMode as *mut crate::SignalOfRasterMode, arg1)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SignalOfQSize {
    type Arguments = (*const ::qt_core::QSize,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QSize)\0"),
            )
        }
    }
}

impl crate::SignalOfQSize {
    /// Connects this signal to another signal or slot.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect_with_type<R>(
        &self,
        connection_type: ::qt_core::ConnectionType,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QSize,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect_with_type(connection_type, receiver)
    }

    /// Connects this signal to another signal or slot, using auto connection type.
    ///
    /// This is a shortcut for `self.signal().connect(receiver)`.

    pub unsafe fn connect<R>(
        &self,
        receiver: R,
    ) -> cpp_core::CppBox<::qt_core::q_meta_object::Connection>
    where
        R: ::qt_core::AsReceiver,
        (*const ::qt_core::QSize,): ::qt_core::ArgumentsCompatible<R::Arguments>,
    {
        self.signal().connect(receiver)
    }
}

/// Emits a Qt signal with arguments `*const ::qt_core::QSize`.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QSize```</span>).
///
/// Use `connect()` method of this object to connect this signal to a slot. Use `emit()` method to emit the signal.
#[repr(C)]
pub struct SignalOfQSize {
    _unused: u8,
}
impl SignalOfQSize {
    /// Returns a `Signal` object representing the signal.
    ///
    /// This method is useful if you need to connect another signal to this signal. However, when you need to connect this signal to another signal or slot, it's simpler to use the `connect()` method of this object directly.
    #[inline(always)]
    pub fn signal(&self) -> ::qt_core::Signal<(*const ::qt_core::QSize,)> {
        unsafe {
            ::qt_core::Signal::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"2emit_(QSize)\0"),
            )
        }
    }

    /// Emits the signal.
    #[inline(always)]
    pub unsafe fn emit(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_emit_(
            self as *const crate::SignalOfQSize as *mut crate::SignalOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(arg0).as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_metaObject(
                self as *const crate::SignalOfQSize,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new() -> ::qt_core::QBox<crate::SignalOfQSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_ctr_qt_3d_render_ffi_signal_wrapper_QSize()
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_qt_metacall(
            self as *const crate::SignalOfQSize as *mut crate::SignalOfQSize,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_qt_metacast(
            self as *const crate::SignalOfQSize as *mut crate::SignalOfQSize,
            arg1,
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfApi {
    type Arguments = (crate::q_graphics_api_filter::Api,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QGraphicsApiFilter::Api)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_graphics_api_filter::Api` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::Api```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfApi {
    _unused: u8,
}
impl SlotOfApi {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_metaObject(self as *const crate::SlotOfApi)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_graphics_api_filter::Api) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfApi> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_graphics_api_filter::Api) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_graphics_api_filter::Api,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_qt_metacall(self as *const crate::SlotOfApi as *mut crate::SlotOfApi, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_qt_metacast(self as *const crate::SlotOfApi as *mut crate::SlotOfApi, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_graphics_api_filter::Api) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_graphics_api_filter::Api) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_graphics_api_filter::Api,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_set(self as *const crate::SlotOfApi as *mut crate::SlotOfApi, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_graphics_api_filter::Api) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_slot_(self as *const crate::SlotOfApi as *mut crate::SlotOfApi, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQGeometry {
    type Arguments = (*mut crate::QGeometry,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QGeometry *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QGeometry` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGeometry*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQGeometry {
    _unused: u8,
}
impl SlotOfQGeometry {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_metaObject(self as *const crate::SlotOfQGeometry)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QGeometry>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQGeometry> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QGeometry>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QGeometry,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_qt_metacall(self as *const crate::SlotOfQGeometry as *mut crate::SlotOfQGeometry, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_qt_metacast(self as *const crate::SlotOfQGeometry as *mut crate::SlotOfQGeometry, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QGeometry>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QGeometry>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QGeometry,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_set(self as *const crate::SlotOfQGeometry as *mut crate::SlotOfQGeometry, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QGeometry>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_slot_(self as *const crate::SlotOfQGeometry as *mut crate::SlotOfQGeometry, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QGeometry>>::cast_into(arg0).as_raw_ptr() as *mut crate::QGeometry)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQRenderTarget {
    type Arguments = (*mut crate::QRenderTarget,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QRenderTarget *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QRenderTarget` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderTarget*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQRenderTarget {
    _unused: u8,
}
impl SlotOfQRenderTarget {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_metaObject(self as *const crate::SlotOfQRenderTarget)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QRenderTarget>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQRenderTarget> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::qt_core::QPtr<crate::QRenderTarget>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QRenderTarget,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_qt_metacall(self as *const crate::SlotOfQRenderTarget as *mut crate::SlotOfQRenderTarget, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_qt_metacast(self as *const crate::SlotOfQRenderTarget as *mut crate::SlotOfQRenderTarget, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QRenderTarget>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QRenderTarget>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QRenderTarget,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_set(self as *const crate::SlotOfQRenderTarget as *mut crate::SlotOfQRenderTarget, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTarget>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_slot_(self as *const crate::SlotOfQRenderTarget as *mut crate::SlotOfQRenderTarget, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTarget>>::cast_into(arg0).as_raw_ptr() as *mut crate::QRenderTarget)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQPoint {
    type Arguments = (*const ::qt_core::QPoint,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(QPoint const &)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QPoint` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QPoint&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQPoint {
    _unused: u8,
}
impl SlotOfQPoint {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_metaObject(self as *const crate::SlotOfQPoint)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<::qt_core::QPoint>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQPoint> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::cpp_core::Ref<::qt_core::QPoint>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *const ::qt_core::QPoint,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QPoint)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_qt_metacall(self as *const crate::SlotOfQPoint as *mut crate::SlotOfQPoint, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_qt_metacast(self as *const crate::SlotOfQPoint as *mut crate::SlotOfQPoint, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<::qt_core::QPoint>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::cpp_core::Ref<::qt_core::QPoint>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *const ::qt_core::QPoint,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QPoint)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_set(
            self as *const crate::SlotOfQPoint as *mut crate::SlotOfQPoint,
            Some(ffi_callback::<T>),
            Some(deleter::<T>),
            data,
        )
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QPoint>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_slot_(
            self as *const crate::SlotOfQPoint as *mut crate::SlotOfQPoint,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QPoint>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfStatus {
    type Arguments = (crate::q_shader_program::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QShaderProgram::Status)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_shader_program::Status` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderProgram::Status```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfStatus {
    _unused: u8,
}
impl SlotOfStatus {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_metaObject(self as *const crate::SlotOfStatus)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_shader_program::Status) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfStatus> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_shader_program::Status) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_shader_program::Status,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_qt_metacall(self as *const crate::SlotOfStatus as *mut crate::SlotOfStatus, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_qt_metacast(self as *const crate::SlotOfStatus as *mut crate::SlotOfStatus, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_shader_program::Status) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_shader_program::Status) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_shader_program::Status,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_set(self as *const crate::SlotOfStatus as *mut crate::SlotOfStatus, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_shader_program::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_slot_(self as *const crate::SlotOfStatus as *mut crate::SlotOfStatus, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQVector3D {
    type Arguments = (*const ::qt_gui::QVector3D,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(QVector3D)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_gui::QVector3D` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QVector3D```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQVector3D {
    _unused: u8,
}
impl SlotOfQVector3D {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_metaObject(self as *const crate::SlotOfQVector3D)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_qt_metacall(
            self as *const crate::SlotOfQVector3D as *mut crate::SlotOfQVector3D,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_qt_metacast(
            self as *const crate::SlotOfQVector3D as *mut crate::SlotOfQVector3D,
            arg1,
        )
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVector3D>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_slot_(
            self as *const crate::SlotOfQVector3D as *mut crate::SlotOfQVector3D,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVector3D>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfDepthFunction {
    type Arguments = (crate::q_depth_test::DepthFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QDepthTest::DepthFunction)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_depth_test::DepthFunction` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QDepthTest::DepthFunction```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfDepthFunction {
    _unused: u8,
}
impl SlotOfDepthFunction {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_metaObject(self as *const crate::SlotOfDepthFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_depth_test::DepthFunction) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfDepthFunction> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_depth_test::DepthFunction) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_depth_test::DepthFunction,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_qt_metacall(self as *const crate::SlotOfDepthFunction as *mut crate::SlotOfDepthFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_qt_metacast(self as *const crate::SlotOfDepthFunction as *mut crate::SlotOfDepthFunction, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_depth_test::DepthFunction) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_depth_test::DepthFunction) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_depth_test::DepthFunction,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_set(self as *const crate::SlotOfDepthFunction as *mut crate::SlotOfDepthFunction, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_depth_test::DepthFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_slot_(self as *const crate::SlotOfDepthFunction as *mut crate::SlotOfDepthFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SlotOfHandleType {
    type Arguments = (crate::q_set_fence::HandleType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QSetFence::HandleType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_set_fence::HandleType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QSetFence::HandleType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfHandleType {
    _unused: u8,
}
impl SlotOfHandleType {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_metaObject(self as *const crate::SlotOfHandleType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new<T: FnMut(crate::q_set_fence::HandleType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfHandleType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_set_fence::HandleType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_set_fence::HandleType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_qt_metacall(self as *const crate::SlotOfHandleType as *mut crate::SlotOfHandleType, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_qt_metacast(self as *const crate::SlotOfHandleType as *mut crate::SlotOfHandleType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set<T: FnMut(crate::q_set_fence::HandleType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_set_fence::HandleType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_set_fence::HandleType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_set(self as *const crate::SlotOfHandleType as *mut crate::SlotOfHandleType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn slot(&self, arg0: crate::q_set_fence::HandleType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_slot_(self as *const crate::SlotOfHandleType as *mut crate::SlotOfHandleType, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfComparisonMode {
    type Arguments = (crate::q_abstract_texture::ComparisonMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractTexture::ComparisonMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_texture::ComparisonMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfComparisonMode {
    _unused: u8,
}
impl SlotOfComparisonMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_metaObject(self as *const crate::SlotOfComparisonMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_abstract_texture::ComparisonMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfComparisonMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_abstract_texture::ComparisonMode) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_texture::ComparisonMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_qt_metacall(self as *const crate::SlotOfComparisonMode as *mut crate::SlotOfComparisonMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_qt_metacast(self as *const crate::SlotOfComparisonMode as *mut crate::SlotOfComparisonMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_abstract_texture::ComparisonMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_abstract_texture::ComparisonMode) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_texture::ComparisonMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_set(self as *const crate::SlotOfComparisonMode as *mut crate::SlotOfComparisonMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_texture::ComparisonMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_slot_(self as *const crate::SlotOfComparisonMode as *mut crate::SlotOfComparisonMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SlotOfAccess {
    type Arguments = (crate::q_shader_image::Access,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QShaderImage::Access)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_shader_image::Access` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderImage::Access```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfAccess {
    _unused: u8,
}
impl SlotOfAccess {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_metaObject(self as *const crate::SlotOfAccess)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new<T: FnMut(crate::q_shader_image::Access) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfAccess> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_shader_image::Access) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_shader_image::Access,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_qt_metacall(self as *const crate::SlotOfAccess as *mut crate::SlotOfAccess, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_qt_metacast(self as *const crate::SlotOfAccess as *mut crate::SlotOfAccess, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set<T: FnMut(crate::q_shader_image::Access) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_shader_image::Access) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_shader_image::Access,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_set(self as *const crate::SlotOfAccess as *mut crate::SlotOfAccess, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn slot(&self, arg0: crate::q_shader_image::Access) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_slot_(self as *const crate::SlotOfAccess as *mut crate::SlotOfAccess, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfBufferType {
    type Arguments = (crate::q_clear_buffers::BufferType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QClearBuffers::BufferType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_clear_buffers::BufferType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QClearBuffers::BufferType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfBufferType {
    _unused: u8,
}
impl SlotOfBufferType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_metaObject(self as *const crate::SlotOfBufferType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_clear_buffers::BufferType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfBufferType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_clear_buffers::BufferType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_clear_buffers::BufferType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_qt_metacall(self as *const crate::SlotOfBufferType as *mut crate::SlotOfBufferType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_qt_metacast(self as *const crate::SlotOfBufferType as *mut crate::SlotOfBufferType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_clear_buffers::BufferType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_clear_buffers::BufferType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_clear_buffers::BufferType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_set(self as *const crate::SlotOfBufferType as *mut crate::SlotOfBufferType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_clear_buffers::BufferType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_slot_(self as *const crate::SlotOfBufferType as *mut crate::SlotOfBufferType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfFilter {
    type Arguments = (crate::q_abstract_texture::Filter,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractTexture::Filter)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_texture::Filter` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::Filter```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfFilter {
    _unused: u8,
}
impl SlotOfFilter {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_metaObject(self as *const crate::SlotOfFilter)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_abstract_texture::Filter) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfFilter> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_texture::Filter) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_texture::Filter,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_qt_metacall(self as *const crate::SlotOfFilter as *mut crate::SlotOfFilter, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_qt_metacast(self as *const crate::SlotOfFilter as *mut crate::SlotOfFilter, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_abstract_texture::Filter) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_texture::Filter) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_texture::Filter,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_set(self as *const crate::SlotOfFilter as *mut crate::SlotOfFilter, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_texture::Filter) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_slot_(self as *const crate::SlotOfFilter as *mut crate::SlotOfFilter, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfCullingMode {
    type Arguments = (crate::q_cull_face::CullingMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QCullFace::CullingMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_cull_face::CullingMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QCullFace::CullingMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfCullingMode {
    _unused: u8,
}
impl SlotOfCullingMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_metaObject(self as *const crate::SlotOfCullingMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_cull_face::CullingMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfCullingMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_cull_face::CullingMode) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_cull_face::CullingMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_qt_metacall(self as *const crate::SlotOfCullingMode as *mut crate::SlotOfCullingMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_qt_metacast(self as *const crate::SlotOfCullingMode as *mut crate::SlotOfCullingMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_cull_face::CullingMode) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_cull_face::CullingMode) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_cull_face::CullingMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_set(self as *const crate::SlotOfCullingMode as *mut crate::SlotOfCullingMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_cull_face::CullingMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_slot_(self as *const crate::SlotOfCullingMode as *mut crate::SlotOfCullingMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SlotOfHandleType2 {
    type Arguments = (crate::q_wait_fence::HandleType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QWaitFence::HandleType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_wait_fence::HandleType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QWaitFence::HandleType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfHandleType2 {
    _unused: u8,
}
impl SlotOfHandleType2 {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_metaObject(self as *const crate::SlotOfHandleType2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new<T: FnMut(crate::q_wait_fence::HandleType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfHandleType2> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_wait_fence::HandleType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_wait_fence::HandleType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_qt_metacall(self as *const crate::SlotOfHandleType2 as *mut crate::SlotOfHandleType2, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_qt_metacast(self as *const crate::SlotOfHandleType2 as *mut crate::SlotOfHandleType2, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set<T: FnMut(crate::q_wait_fence::HandleType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_wait_fence::HandleType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_wait_fence::HandleType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_set(self as *const crate::SlotOfHandleType2 as *mut crate::SlotOfHandleType2, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn slot(&self, arg0: crate::q_wait_fence::HandleType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_slot_(self as *const crate::SlotOfHandleType2 as *mut crate::SlotOfHandleType2, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
    )]
    #[cfg(any(
        any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQFlagsOperation {
    type Arguments = (::std::os::raw::c_int,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(QFlags< Qt3DRender::QMemoryBarrier::Operation >)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::std::os::raw::c_int` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QFlags<Qt3DRender::QMemoryBarrier::Operation>```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQFlagsOperation {
    _unused: u8,
}
impl SlotOfQFlagsOperation {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_metaObject(self as *const crate::SlotOfQFlagsOperation)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QFlags<crate::q_memory_barrier::Operation>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQFlagsOperation> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::qt_core::QFlags<crate::q_memory_barrier::Operation>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: ::std::os::raw::c_int,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QFlags::from(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_qt_metacall(self as *const crate::SlotOfQFlagsOperation as *mut crate::SlotOfQFlagsOperation, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_qt_metacast(self as *const crate::SlotOfQFlagsOperation as *mut crate::SlotOfQFlagsOperation, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QFlags<crate::q_memory_barrier::Operation>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(::qt_core::QFlags<crate::q_memory_barrier::Operation>) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: ::std::os::raw::c_int,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QFlags::from(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_set(self as *const crate::SlotOfQFlagsOperation as *mut crate::SlotOfQFlagsOperation, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: ::qt_core::QFlags<crate::q_memory_barrier::Operation>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_slot_(self as *const crate::SlotOfQFlagsOperation as *mut crate::SlotOfQFlagsOperation, arg0.to_int())
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SlotOfFilterMode {
    type Arguments = (crate::q_abstract_ray_caster::FilterMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractRayCaster::FilterMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_ray_caster::FilterMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractRayCaster::FilterMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfFilterMode {
    _unused: u8,
}
impl SlotOfFilterMode {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_metaObject(self as *const crate::SlotOfFilterMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new<T: FnMut(crate::q_abstract_ray_caster::FilterMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfFilterMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_abstract_ray_caster::FilterMode) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_ray_caster::FilterMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_qt_metacall(self as *const crate::SlotOfFilterMode as *mut crate::SlotOfFilterMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_qt_metacast(self as *const crate::SlotOfFilterMode as *mut crate::SlotOfFilterMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set<T: FnMut(crate::q_abstract_ray_caster::FilterMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_ray_caster::FilterMode) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_ray_caster::FilterMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_set(self as *const crate::SlotOfFilterMode as *mut crate::SlotOfFilterMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_ray_caster::FilterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_slot_(self as *const crate::SlotOfFilterMode as *mut crate::SlotOfFilterMode, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfAccessType {
    type Arguments = (crate::q_buffer::AccessType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QBuffer::AccessType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_buffer::AccessType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer::AccessType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfAccessType {
    _unused: u8,
}
impl SlotOfAccessType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_metaObject(self as *const crate::SlotOfAccessType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_buffer::AccessType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfAccessType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_buffer::AccessType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_buffer::AccessType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_qt_metacall(self as *const crate::SlotOfAccessType as *mut crate::SlotOfAccessType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_qt_metacast(self as *const crate::SlotOfAccessType as *mut crate::SlotOfAccessType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_buffer::AccessType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_buffer::AccessType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_buffer::AccessType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_set(self as *const crate::SlotOfAccessType as *mut crate::SlotOfAccessType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_buffer::AccessType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_slot_(self as *const crate::SlotOfAccessType as *mut crate::SlotOfAccessType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQVariant {
    type Arguments = (*const ::qt_core::QVariant,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(QVariant)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QVariant` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QVariant```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQVariant {
    _unused: u8,
}
impl SlotOfQVariant {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_metaObject(
                self as *const crate::SlotOfQVariant,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_qt_metacall(
            self as *const crate::SlotOfQVariant as *mut crate::SlotOfQVariant,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_qt_metacast(
            self as *const crate::SlotOfQVariant as *mut crate::SlotOfQVariant,
            arg1,
        )
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVariant>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_slot_(
            self as *const crate::SlotOfQVariant as *mut crate::SlotOfQVariant,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVariant>>::cast_into(arg0)
                .as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfAlphaFunction {
    type Arguments = (crate::q_alpha_test::AlphaFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAlphaTest::AlphaFunction)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_alpha_test::AlphaFunction` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAlphaTest::AlphaFunction```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfAlphaFunction {
    _unused: u8,
}
impl SlotOfAlphaFunction {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_metaObject(self as *const crate::SlotOfAlphaFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_alpha_test::AlphaFunction) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfAlphaFunction> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_alpha_test::AlphaFunction) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_alpha_test::AlphaFunction,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_qt_metacall(self as *const crate::SlotOfAlphaFunction as *mut crate::SlotOfAlphaFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_qt_metacast(self as *const crate::SlotOfAlphaFunction as *mut crate::SlotOfAlphaFunction, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_alpha_test::AlphaFunction) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_alpha_test::AlphaFunction) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_alpha_test::AlphaFunction,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_set(self as *const crate::SlotOfAlphaFunction as *mut crate::SlotOfAlphaFunction, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_alpha_test::AlphaFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_slot_(self as *const crate::SlotOfAlphaFunction as *mut crate::SlotOfAlphaFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfWrapMode {
    type Arguments = (crate::q_texture_wrap_mode::WrapMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QTextureWrapMode::WrapMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_texture_wrap_mode::WrapMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QTextureWrapMode::WrapMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfWrapMode {
    _unused: u8,
}
impl SlotOfWrapMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_metaObject(self as *const crate::SlotOfWrapMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_texture_wrap_mode::WrapMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfWrapMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_texture_wrap_mode::WrapMode) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_texture_wrap_mode::WrapMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_qt_metacall(self as *const crate::SlotOfWrapMode as *mut crate::SlotOfWrapMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_qt_metacast(self as *const crate::SlotOfWrapMode as *mut crate::SlotOfWrapMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_texture_wrap_mode::WrapMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_texture_wrap_mode::WrapMode) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_texture_wrap_mode::WrapMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_set(self as *const crate::SlotOfWrapMode as *mut crate::SlotOfWrapMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_texture_wrap_mode::WrapMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_slot_(self as *const crate::SlotOfWrapMode as *mut crate::SlotOfWrapMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfStencilFunction {
    type Arguments = (crate::q_stencil_test_arguments::StencilFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QStencilTestArguments::StencilFunction)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_stencil_test_arguments::StencilFunction` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFunction```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfStencilFunction {
    _unused: u8,
}
impl SlotOfStencilFunction {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_metaObject(self as *const crate::SlotOfStencilFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_stencil_test_arguments::StencilFunction) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfStencilFunction> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_stencil_test_arguments::StencilFunction) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_stencil_test_arguments::StencilFunction,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_qt_metacall(self as *const crate::SlotOfStencilFunction as *mut crate::SlotOfStencilFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_qt_metacast(self as *const crate::SlotOfStencilFunction as *mut crate::SlotOfStencilFunction, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_stencil_test_arguments::StencilFunction) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_stencil_test_arguments::StencilFunction) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_stencil_test_arguments::StencilFunction,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_set(self as *const crate::SlotOfStencilFunction as *mut crate::SlotOfStencilFunction, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_stencil_test_arguments::StencilFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_slot_(self as *const crate::SlotOfStencilFunction as *mut crate::SlotOfStencilFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQVectorOfDouble {
    type Arguments = (*const ::qt_gui::QVectorOfDouble,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(QVector< double > const &)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_gui::QVectorOfDouble` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<double>&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQVectorOfDouble {
    _unused: u8,
}
impl SlotOfQVectorOfDouble {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_metaObject(self as *const crate::SlotOfQVectorOfDouble)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<::qt_gui::QVectorOfDouble>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQVectorOfDouble> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::cpp_core::Ref<::qt_gui::QVectorOfDouble>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *const ::qt_gui::QVectorOfDouble,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_gui::QVectorOfDouble)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_qt_metacall(self as *const crate::SlotOfQVectorOfDouble as *mut crate::SlotOfQVectorOfDouble, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_qt_metacast(self as *const crate::SlotOfQVectorOfDouble as *mut crate::SlotOfQVectorOfDouble, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<::qt_gui::QVectorOfDouble>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(::cpp_core::Ref<::qt_gui::QVectorOfDouble>) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: *const ::qt_gui::QVectorOfDouble,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_gui::QVectorOfDouble)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_set(self as *const crate::SlotOfQVectorOfDouble as *mut crate::SlotOfQVectorOfDouble, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QVectorOfDouble>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_slot_(self as *const crate::SlotOfQVectorOfDouble as *mut crate::SlotOfQVectorOfDouble, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QVectorOfDouble>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfSizeMode {
    type Arguments = (crate::q_point_size::SizeMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QPointSize::SizeMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_point_size::SizeMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPointSize::SizeMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfSizeMode {
    _unused: u8,
}
impl SlotOfSizeMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_metaObject(self as *const crate::SlotOfSizeMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_point_size::SizeMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfSizeMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_point_size::SizeMode) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_point_size::SizeMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_qt_metacall(self as *const crate::SlotOfSizeMode as *mut crate::SlotOfSizeMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_qt_metacast(self as *const crate::SlotOfSizeMode as *mut crate::SlotOfSizeMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_point_size::SizeMode) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_point_size::SizeMode) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_point_size::SizeMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_set(self as *const crate::SlotOfSizeMode as *mut crate::SlotOfSizeMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_point_size::SizeMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_slot_(self as *const crate::SlotOfSizeMode as *mut crate::SlotOfSizeMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfVertexBaseType {
    type Arguments = (crate::q_attribute::VertexBaseType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAttribute::VertexBaseType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_attribute::VertexBaseType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAttribute::VertexBaseType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfVertexBaseType {
    _unused: u8,
}
impl SlotOfVertexBaseType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_metaObject(self as *const crate::SlotOfVertexBaseType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_attribute::VertexBaseType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfVertexBaseType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_attribute::VertexBaseType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_attribute::VertexBaseType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_qt_metacall(self as *const crate::SlotOfVertexBaseType as *mut crate::SlotOfVertexBaseType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_qt_metacast(self as *const crate::SlotOfVertexBaseType as *mut crate::SlotOfVertexBaseType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_attribute::VertexBaseType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_attribute::VertexBaseType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_attribute::VertexBaseType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_set(self as *const crate::SlotOfVertexBaseType as *mut crate::SlotOfVertexBaseType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_attribute::VertexBaseType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_slot_(self as *const crate::SlotOfVertexBaseType as *mut crate::SlotOfVertexBaseType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfThresholdType {
    type Arguments = (crate::q_level_of_detail::ThresholdType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QLevelOfDetail::ThresholdType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_level_of_detail::ThresholdType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QLevelOfDetail::ThresholdType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfThresholdType {
    _unused: u8,
}
impl SlotOfThresholdType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_metaObject(self as *const crate::SlotOfThresholdType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_level_of_detail::ThresholdType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfThresholdType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_level_of_detail::ThresholdType) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_level_of_detail::ThresholdType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_qt_metacall(self as *const crate::SlotOfThresholdType as *mut crate::SlotOfThresholdType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_qt_metacast(self as *const crate::SlotOfThresholdType as *mut crate::SlotOfThresholdType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_level_of_detail::ThresholdType) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_level_of_detail::ThresholdType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_level_of_detail::ThresholdType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_set(self as *const crate::SlotOfThresholdType as *mut crate::SlotOfThresholdType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_level_of_detail::ThresholdType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_slot_(self as *const crate::SlotOfThresholdType as *mut crate::SlotOfThresholdType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfFaceMode {
    type Arguments = (crate::q_stencil_operation_arguments::FaceMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QStencilOperationArguments::FaceMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_stencil_operation_arguments::FaceMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilOperationArguments::FaceMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfFaceMode {
    _unused: u8,
}
impl SlotOfFaceMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_metaObject(self as *const crate::SlotOfFaceMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_stencil_operation_arguments::FaceMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfFaceMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_stencil_operation_arguments::FaceMode) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_stencil_operation_arguments::FaceMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_qt_metacall(self as *const crate::SlotOfFaceMode as *mut crate::SlotOfFaceMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_qt_metacast(self as *const crate::SlotOfFaceMode as *mut crate::SlotOfFaceMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_stencil_operation_arguments::FaceMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_stencil_operation_arguments::FaceMode) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_stencil_operation_arguments::FaceMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_set(self as *const crate::SlotOfFaceMode as *mut crate::SlotOfFaceMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_stencil_operation_arguments::FaceMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_slot_(self as *const crate::SlotOfFaceMode as *mut crate::SlotOfFaceMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQByteArray {
    type Arguments = (*const ::qt_core::QByteArray,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(QByteArray const &)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QByteArray` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QByteArray&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQByteArray {
    _unused: u8,
}
impl SlotOfQByteArray {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_metaObject(self as *const crate::SlotOfQByteArray)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<::qt_core::QByteArray>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQByteArray> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::cpp_core::Ref<::qt_core::QByteArray>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *const ::qt_core::QByteArray,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QByteArray)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_qt_metacall(self as *const crate::SlotOfQByteArray as *mut crate::SlotOfQByteArray, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_qt_metacast(self as *const crate::SlotOfQByteArray as *mut crate::SlotOfQByteArray, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<::qt_core::QByteArray>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::cpp_core::Ref<::qt_core::QByteArray>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *const ::qt_core::QByteArray,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QByteArray)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_set(self as *const crate::SlotOfQByteArray as *mut crate::SlotOfQByteArray, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QByteArray>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_slot_(self as *const crate::SlotOfQByteArray as *mut crate::SlotOfQByteArray, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QByteArray>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SlotOfRasterMode {
    type Arguments = (crate::q_raster_mode::RasterMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QRasterMode::RasterMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_raster_mode::RasterMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRasterMode::RasterMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfRasterMode {
    _unused: u8,
}
impl SlotOfRasterMode {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_metaObject(self as *const crate::SlotOfRasterMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new<T: FnMut(crate::q_raster_mode::RasterMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfRasterMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_raster_mode::RasterMode) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_raster_mode::RasterMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_qt_metacall(self as *const crate::SlotOfRasterMode as *mut crate::SlotOfRasterMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_qt_metacast(self as *const crate::SlotOfRasterMode as *mut crate::SlotOfRasterMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set<T: FnMut(crate::q_raster_mode::RasterMode) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_raster_mode::RasterMode) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_raster_mode::RasterMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_set(self as *const crate::SlotOfRasterMode as *mut crate::SlotOfRasterMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn slot(&self, arg0: crate::q_raster_mode::RasterMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_slot_(self as *const crate::SlotOfRasterMode as *mut crate::SlotOfRasterMode, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfUsageType {
    type Arguments = (crate::q_buffer::UsageType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QBuffer::UsageType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_buffer::UsageType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer::UsageType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfUsageType {
    _unused: u8,
}
impl SlotOfUsageType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_metaObject(self as *const crate::SlotOfUsageType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_buffer::UsageType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfUsageType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_buffer::UsageType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_buffer::UsageType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_qt_metacall(self as *const crate::SlotOfUsageType as *mut crate::SlotOfUsageType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_qt_metacast(self as *const crate::SlotOfUsageType as *mut crate::SlotOfUsageType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_buffer::UsageType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_buffer::UsageType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_buffer::UsageType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_set(self as *const crate::SlotOfUsageType as *mut crate::SlotOfUsageType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_buffer::UsageType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_slot_(self as *const crate::SlotOfUsageType as *mut crate::SlotOfUsageType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfStatus2 {
    type Arguments = (crate::q_texture_image::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QTextureImage::Status)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_texture_image::Status` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QTextureImage::Status```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfStatus2 {
    _unused: u8,
}
impl SlotOfStatus2 {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_metaObject(self as *const crate::SlotOfStatus2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_texture_image::Status) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfStatus2> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_texture_image::Status) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_texture_image::Status,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_qt_metacall(self as *const crate::SlotOfStatus2 as *mut crate::SlotOfStatus2, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_qt_metacast(self as *const crate::SlotOfStatus2 as *mut crate::SlotOfStatus2, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_texture_image::Status) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_texture_image::Status) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_texture_image::Status,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_set(self as *const crate::SlotOfStatus2 as *mut crate::SlotOfStatus2, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_texture_image::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_slot_(self as *const crate::SlotOfStatus2 as *mut crate::SlotOfStatus2, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfU64 {
    type Arguments = (u64,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(quint64)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `u64` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```quint64```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfU64 {
    _unused: u8,
}
impl SlotOfU64 {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_metaObject(
                self as *const crate::SlotOfU64,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(u64) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfU64> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(u64) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: u64,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_ctr_qt_3d_render_ffi_slot_wrapper_quint64(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_qt_metacall(
            self as *const crate::SlotOfU64 as *mut crate::SlotOfU64,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_qt_metacast(
            self as *const crate::SlotOfU64 as *mut crate::SlotOfU64,
            arg1,
        )
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(u64) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(u64) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: u64,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_set(
            self as *const crate::SlotOfU64 as *mut crate::SlotOfU64,
            Some(ffi_callback::<T>),
            Some(deleter::<T>),
            data,
        )
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: u64) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_slot_(
            self as *const crate::SlotOfU64 as *mut crate::SlotOfU64,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfFaceOrientationPickingMode {
    type Arguments = (crate::q_picking_settings::FaceOrientationPickingMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QPickingSettings::FaceOrientationPickingMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_picking_settings::FaceOrientationPickingMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickingSettings::FaceOrientationPickingMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfFaceOrientationPickingMode {
    _unused: u8,
}
impl SlotOfFaceOrientationPickingMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_metaObject(self as *const crate::SlotOfFaceOrientationPickingMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_picking_settings::FaceOrientationPickingMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfFaceOrientationPickingMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_picking_settings::FaceOrientationPickingMode) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_picking_settings::FaceOrientationPickingMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_qt_metacall(self as *const crate::SlotOfFaceOrientationPickingMode as *mut crate::SlotOfFaceOrientationPickingMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_qt_metacast(self as *const crate::SlotOfFaceOrientationPickingMode as *mut crate::SlotOfFaceOrientationPickingMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_picking_settings::FaceOrientationPickingMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_picking_settings::FaceOrientationPickingMode) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_picking_settings::FaceOrientationPickingMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_set(self as *const crate::SlotOfFaceOrientationPickingMode as *mut crate::SlotOfFaceOrientationPickingMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_picking_settings::FaceOrientationPickingMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_slot_(self as *const crate::SlotOfFaceOrientationPickingMode as *mut crate::SlotOfFaceOrientationPickingMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfCubeMapFace {
    type Arguments = (crate::q_abstract_texture::CubeMapFace,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractTexture::CubeMapFace)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_texture::CubeMapFace` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::CubeMapFace```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfCubeMapFace {
    _unused: u8,
}
impl SlotOfCubeMapFace {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_metaObject(self as *const crate::SlotOfCubeMapFace)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_abstract_texture::CubeMapFace) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfCubeMapFace> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_abstract_texture::CubeMapFace) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_texture::CubeMapFace,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_qt_metacall(self as *const crate::SlotOfCubeMapFace as *mut crate::SlotOfCubeMapFace, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_qt_metacast(self as *const crate::SlotOfCubeMapFace as *mut crate::SlotOfCubeMapFace, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_abstract_texture::CubeMapFace) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_texture::CubeMapFace) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_texture::CubeMapFace,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_set(self as *const crate::SlotOfCubeMapFace as *mut crate::SlotOfCubeMapFace, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_texture::CubeMapFace) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_slot_(self as *const crate::SlotOfCubeMapFace as *mut crate::SlotOfCubeMapFace, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQShaderProgram {
    type Arguments = (*mut crate::QShaderProgram,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QShaderProgram *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QShaderProgram` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderProgram*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQShaderProgram {
    _unused: u8,
}
impl SlotOfQShaderProgram {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_metaObject(self as *const crate::SlotOfQShaderProgram)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QShaderProgram>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQShaderProgram> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::qt_core::QPtr<crate::QShaderProgram>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QShaderProgram,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_qt_metacall(self as *const crate::SlotOfQShaderProgram as *mut crate::SlotOfQShaderProgram, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_qt_metacast(self as *const crate::SlotOfQShaderProgram as *mut crate::SlotOfQShaderProgram, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QShaderProgram>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QShaderProgram>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QShaderProgram,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_set(self as *const crate::SlotOfQShaderProgram as *mut crate::SlotOfQShaderProgram, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QShaderProgram>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_slot_(self as *const crate::SlotOfQShaderProgram as *mut crate::SlotOfQShaderProgram, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QShaderProgram>>::cast_into(arg0).as_raw_ptr() as *mut crate::QShaderProgram)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SlotOfEnablement {
    type Arguments = (crate::q_subtree_enabler::Enablement,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QSubtreeEnabler::Enablement)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_subtree_enabler::Enablement` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QSubtreeEnabler::Enablement```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfEnablement {
    _unused: u8,
}
impl SlotOfEnablement {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_metaObject(self as *const crate::SlotOfEnablement)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new<T: FnMut(crate::q_subtree_enabler::Enablement) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfEnablement> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_subtree_enabler::Enablement) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_subtree_enabler::Enablement,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_qt_metacall(self as *const crate::SlotOfEnablement as *mut crate::SlotOfEnablement, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_qt_metacast(self as *const crate::SlotOfEnablement as *mut crate::SlotOfEnablement, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set<T: FnMut(crate::q_subtree_enabler::Enablement) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_subtree_enabler::Enablement) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_subtree_enabler::Enablement,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_set(self as *const crate::SlotOfEnablement as *mut crate::SlotOfEnablement, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn slot(&self, arg0: crate::q_subtree_enabler::Enablement) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_slot_(self as *const crate::SlotOfEnablement as *mut crate::SlotOfEnablement, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQColor {
    type Arguments = (*const ::qt_gui::QColor,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(QColor const &)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_gui::QColor` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QColor&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQColor {
    _unused: u8,
}
impl SlotOfQColor {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_metaObject(self as *const crate::SlotOfQColor)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<::qt_gui::QColor>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQColor> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::cpp_core::Ref<::qt_gui::QColor>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *const ::qt_gui::QColor,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_gui::QColor)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_qt_metacall(self as *const crate::SlotOfQColor as *mut crate::SlotOfQColor, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_qt_metacast(self as *const crate::SlotOfQColor as *mut crate::SlotOfQColor, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<::qt_gui::QColor>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::cpp_core::Ref<::qt_gui::QColor>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *const ::qt_gui::QColor,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_gui::QColor)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_set(
            self as *const crate::SlotOfQColor as *mut crate::SlotOfQColor,
            Some(ffi_callback::<T>),
            Some(deleter::<T>),
            data,
        )
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_gui::QColor>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_slot_(
            self as *const crate::SlotOfQColor as *mut crate::SlotOfQColor,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_gui::QColor>>::cast_into(arg0).as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQRenderTargetOutput {
    type Arguments = (*mut crate::QRenderTargetOutput,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QRenderTargetOutput *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QRenderTargetOutput` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderTargetOutput*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQRenderTargetOutput {
    _unused: u8,
}
impl SlotOfQRenderTargetOutput {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_metaObject(self as *const crate::SlotOfQRenderTargetOutput)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QRenderTargetOutput>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQRenderTargetOutput> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::qt_core::QPtr<crate::QRenderTargetOutput>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QRenderTargetOutput,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_qt_metacall(self as *const crate::SlotOfQRenderTargetOutput as *mut crate::SlotOfQRenderTargetOutput, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_qt_metacast(self as *const crate::SlotOfQRenderTargetOutput as *mut crate::SlotOfQRenderTargetOutput, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QRenderTargetOutput>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(::qt_core::QPtr<crate::QRenderTargetOutput>) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QRenderTargetOutput,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_set(self as *const crate::SlotOfQRenderTargetOutput as *mut crate::SlotOfQRenderTargetOutput, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QRenderTargetOutput>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_slot_(self as *const crate::SlotOfQRenderTargetOutput as *mut crate::SlotOfQRenderTargetOutput, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QRenderTargetOutput>>::cast_into(arg0).as_raw_ptr() as *mut crate::QRenderTargetOutput)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfRenderPolicy {
    type Arguments = (crate::q_render_settings::RenderPolicy,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QRenderSettings::RenderPolicy)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_render_settings::RenderPolicy` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderSettings::RenderPolicy```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfRenderPolicy {
    _unused: u8,
}
impl SlotOfRenderPolicy {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_metaObject(self as *const crate::SlotOfRenderPolicy)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_render_settings::RenderPolicy) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfRenderPolicy> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_render_settings::RenderPolicy) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_render_settings::RenderPolicy,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_qt_metacall(self as *const crate::SlotOfRenderPolicy as *mut crate::SlotOfRenderPolicy, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_qt_metacast(self as *const crate::SlotOfRenderPolicy as *mut crate::SlotOfRenderPolicy, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_render_settings::RenderPolicy) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_render_settings::RenderPolicy) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_render_settings::RenderPolicy,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_set(self as *const crate::SlotOfRenderPolicy as *mut crate::SlotOfRenderPolicy, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_render_settings::RenderPolicy) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_slot_(self as *const crate::SlotOfRenderPolicy as *mut crate::SlotOfRenderPolicy, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfComparisonFunction {
    type Arguments = (crate::q_abstract_texture::ComparisonFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractTexture::ComparisonFunction)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_texture::ComparisonFunction` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::ComparisonFunction```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfComparisonFunction {
    _unused: u8,
}
impl SlotOfComparisonFunction {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_metaObject(self as *const crate::SlotOfComparisonFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_abstract_texture::ComparisonFunction) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfComparisonFunction> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_abstract_texture::ComparisonFunction) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_texture::ComparisonFunction,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_qt_metacall(self as *const crate::SlotOfComparisonFunction as *mut crate::SlotOfComparisonFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_qt_metacast(self as *const crate::SlotOfComparisonFunction as *mut crate::SlotOfComparisonFunction, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_abstract_texture::ComparisonFunction) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_abstract_texture::ComparisonFunction) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_texture::ComparisonFunction,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_set(self as *const crate::SlotOfComparisonFunction as *mut crate::SlotOfComparisonFunction, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_texture::ComparisonFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_slot_(self as *const crate::SlotOfComparisonFunction as *mut crate::SlotOfComparisonFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfBlendFunction {
    type Arguments = (crate::q_blend_equation::BlendFunction,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QBlendEquation::BlendFunction)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_blend_equation::BlendFunction` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBlendEquation::BlendFunction```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfBlendFunction {
    _unused: u8,
}
impl SlotOfBlendFunction {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_metaObject(self as *const crate::SlotOfBlendFunction)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_blend_equation::BlendFunction) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfBlendFunction> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_blend_equation::BlendFunction) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_blend_equation::BlendFunction,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_qt_metacall(self as *const crate::SlotOfBlendFunction as *mut crate::SlotOfBlendFunction, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_qt_metacast(self as *const crate::SlotOfBlendFunction as *mut crate::SlotOfBlendFunction, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_blend_equation::BlendFunction) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_blend_equation::BlendFunction) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_blend_equation::BlendFunction,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_set(self as *const crate::SlotOfBlendFunction as *mut crate::SlotOfBlendFunction, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_blend_equation::BlendFunction) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_slot_(self as *const crate::SlotOfBlendFunction as *mut crate::SlotOfBlendFunction, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfPickMethod {
    type Arguments = (crate::q_picking_settings::PickMethod,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QPickingSettings::PickMethod)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_picking_settings::PickMethod` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickingSettings::PickMethod```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfPickMethod {
    _unused: u8,
}
impl SlotOfPickMethod {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_metaObject(self as *const crate::SlotOfPickMethod)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_picking_settings::PickMethod) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfPickMethod> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_picking_settings::PickMethod) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_picking_settings::PickMethod,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_qt_metacall(self as *const crate::SlotOfPickMethod as *mut crate::SlotOfPickMethod, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_qt_metacast(self as *const crate::SlotOfPickMethod as *mut crate::SlotOfPickMethod, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_picking_settings::PickMethod) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_picking_settings::PickMethod) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_picking_settings::PickMethod,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_set(self as *const crate::SlotOfPickMethod as *mut crate::SlotOfPickMethod, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_picking_settings::PickMethod) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_slot_(self as *const crate::SlotOfPickMethod as *mut crate::SlotOfPickMethod, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfPickResultMode {
    type Arguments = (crate::q_picking_settings::PickResultMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QPickingSettings::PickResultMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_picking_settings::PickResultMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickingSettings::PickResultMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfPickResultMode {
    _unused: u8,
}
impl SlotOfPickResultMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_metaObject(self as *const crate::SlotOfPickResultMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_picking_settings::PickResultMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfPickResultMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_picking_settings::PickResultMode) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_picking_settings::PickResultMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_qt_metacall(self as *const crate::SlotOfPickResultMode as *mut crate::SlotOfPickResultMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_qt_metacast(self as *const crate::SlotOfPickResultMode as *mut crate::SlotOfPickResultMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_picking_settings::PickResultMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_picking_settings::PickResultMode) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_picking_settings::PickResultMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_set(self as *const crate::SlotOfPickResultMode as *mut crate::SlotOfPickResultMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_picking_settings::PickResultMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_slot_(self as *const crate::SlotOfPickResultMode as *mut crate::SlotOfPickResultMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQFrameGraphNode {
    type Arguments = (*mut crate::QFrameGraphNode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QFrameGraphNode *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QFrameGraphNode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QFrameGraphNode*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQFrameGraphNode {
    _unused: u8,
}
impl SlotOfQFrameGraphNode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_metaObject(self as *const crate::SlotOfQFrameGraphNode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QFrameGraphNode>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQFrameGraphNode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::qt_core::QPtr<crate::QFrameGraphNode>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QFrameGraphNode,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_qt_metacall(self as *const crate::SlotOfQFrameGraphNode as *mut crate::SlotOfQFrameGraphNode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_qt_metacast(self as *const crate::SlotOfQFrameGraphNode as *mut crate::SlotOfQFrameGraphNode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QFrameGraphNode>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QFrameGraphNode>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QFrameGraphNode,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_set(self as *const crate::SlotOfQFrameGraphNode as *mut crate::SlotOfQFrameGraphNode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QFrameGraphNode>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_slot_(self as *const crate::SlotOfQFrameGraphNode as *mut crate::SlotOfQFrameGraphNode, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QFrameGraphNode>>::cast_into(arg0).as_raw_ptr() as *mut crate::QFrameGraphNode)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQVectorOfSortType {
    type Arguments = (*const crate::QVectorOfSortType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(QVector< Qt3DRender::QSortPolicy::SortType > const &)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const crate::QVectorOfSortType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<Qt3DRender::QSortPolicy::SortType>&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQVectorOfSortType {
    _unused: u8,
}
impl SlotOfQVectorOfSortType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_metaObject(self as *const crate::SlotOfQVectorOfSortType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<crate::QVectorOfSortType>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQVectorOfSortType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::cpp_core::Ref<crate::QVectorOfSortType>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *const crate::QVectorOfSortType,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut crate::QVectorOfSortType)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_qt_metacall(self as *const crate::SlotOfQVectorOfSortType as *mut crate::SlotOfQVectorOfSortType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_qt_metacast(self as *const crate::SlotOfQVectorOfSortType as *mut crate::SlotOfQVectorOfSortType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<crate::QVectorOfSortType>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(::cpp_core::Ref<crate::QVectorOfSortType>) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: *const crate::QVectorOfSortType,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut crate::QVectorOfSortType)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_set(self as *const crate::SlotOfQVectorOfSortType as *mut crate::SlotOfQVectorOfSortType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_slot_(self as *const crate::SlotOfQVectorOfSortType as *mut crate::SlotOfQVectorOfSortType, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQVectorOfInt {
    type Arguments = (*const ::qt_core::QVectorOfInt,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(QVector< int > const &)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QVectorOfInt` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<int>&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQVectorOfInt {
    _unused: u8,
}
impl SlotOfQVectorOfInt {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_metaObject(self as *const crate::SlotOfQVectorOfInt)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<::qt_core::QVectorOfInt>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQVectorOfInt> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::cpp_core::Ref<::qt_core::QVectorOfInt>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *const ::qt_core::QVectorOfInt,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QVectorOfInt)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_qt_metacall(self as *const crate::SlotOfQVectorOfInt as *mut crate::SlotOfQVectorOfInt, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_qt_metacast(self as *const crate::SlotOfQVectorOfInt as *mut crate::SlotOfQVectorOfInt, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<::qt_core::QVectorOfInt>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::cpp_core::Ref<::qt_core::QVectorOfInt>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *const ::qt_core::QVectorOfInt,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QVectorOfInt)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_set(self as *const crate::SlotOfQVectorOfInt as *mut crate::SlotOfQVectorOfInt, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QVectorOfInt>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_slot_(self as *const crate::SlotOfQVectorOfInt as *mut crate::SlotOfQVectorOfInt, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QVectorOfInt>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfStatus3 {
    type Arguments = (crate::q_scene_loader::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QSceneLoader::Status)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_scene_loader::Status` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QSceneLoader::Status```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfStatus3 {
    _unused: u8,
}
impl SlotOfStatus3 {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_metaObject(self as *const crate::SlotOfStatus3)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_scene_loader::Status) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfStatus3> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_scene_loader::Status) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_scene_loader::Status,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_qt_metacall(self as *const crate::SlotOfStatus3 as *mut crate::SlotOfStatus3, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_qt_metacast(self as *const crate::SlotOfStatus3 as *mut crate::SlotOfStatus3, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_scene_loader::Status) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_scene_loader::Status) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_scene_loader::Status,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_set(self as *const crate::SlotOfStatus3 as *mut crate::SlotOfStatus3, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_scene_loader::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_slot_(self as *const crate::SlotOfStatus3 as *mut crate::SlotOfStatus3, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SlotOfImageFormat {
    type Arguments = (crate::q_shader_image::ImageFormat,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QShaderImage::ImageFormat)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_shader_image::ImageFormat` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QShaderImage::ImageFormat```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfImageFormat {
    _unused: u8,
}
impl SlotOfImageFormat {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_metaObject(self as *const crate::SlotOfImageFormat)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new<T: FnMut(crate::q_shader_image::ImageFormat) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfImageFormat> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_shader_image::ImageFormat) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_shader_image::ImageFormat,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_qt_metacall(self as *const crate::SlotOfImageFormat as *mut crate::SlotOfImageFormat, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_qt_metacast(self as *const crate::SlotOfImageFormat as *mut crate::SlotOfImageFormat, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set<T: FnMut(crate::q_shader_image::ImageFormat) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_shader_image::ImageFormat) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_shader_image::ImageFormat,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_set(self as *const crate::SlotOfImageFormat as *mut crate::SlotOfImageFormat, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn slot(&self, arg0: crate::q_shader_image::ImageFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_slot_(self as *const crate::SlotOfImageFormat as *mut crate::SlotOfImageFormat, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfTextureFormat {
    type Arguments = (crate::q_abstract_texture::TextureFormat,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractTexture::TextureFormat)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_texture::TextureFormat` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::TextureFormat```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfTextureFormat {
    _unused: u8,
}
impl SlotOfTextureFormat {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_metaObject(self as *const crate::SlotOfTextureFormat)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_abstract_texture::TextureFormat) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfTextureFormat> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_abstract_texture::TextureFormat) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_texture::TextureFormat,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_qt_metacall(self as *const crate::SlotOfTextureFormat as *mut crate::SlotOfTextureFormat, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_qt_metacast(self as *const crate::SlotOfTextureFormat as *mut crate::SlotOfTextureFormat, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_abstract_texture::TextureFormat) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_texture::TextureFormat) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_texture::TextureFormat,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_set(self as *const crate::SlotOfTextureFormat as *mut crate::SlotOfTextureFormat, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_texture::TextureFormat) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_slot_(self as *const crate::SlotOfTextureFormat as *mut crate::SlotOfTextureFormat, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfBlending {
    type Arguments = (crate::q_blend_equation_arguments::Blending,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QBlendEquationArguments::Blending)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_blend_equation_arguments::Blending` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBlendEquationArguments::Blending```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfBlending {
    _unused: u8,
}
impl SlotOfBlending {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_metaObject(self as *const crate::SlotOfBlending)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_blend_equation_arguments::Blending) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfBlending> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_blend_equation_arguments::Blending) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_blend_equation_arguments::Blending,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_qt_metacall(self as *const crate::SlotOfBlending as *mut crate::SlotOfBlending, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_qt_metacast(self as *const crate::SlotOfBlending as *mut crate::SlotOfBlending, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_blend_equation_arguments::Blending) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_blend_equation_arguments::Blending) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_blend_equation_arguments::Blending,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_set(self as *const crate::SlotOfBlending as *mut crate::SlotOfBlending, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_blend_equation_arguments::Blending) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_slot_(self as *const crate::SlotOfBlending as *mut crate::SlotOfBlending, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfOperation {
    type Arguments = (crate::q_stencil_operation_arguments::Operation,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QStencilOperationArguments::Operation)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_stencil_operation_arguments::Operation` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilOperationArguments::Operation```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfOperation {
    _unused: u8,
}
impl SlotOfOperation {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_metaObject(self as *const crate::SlotOfOperation)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_stencil_operation_arguments::Operation) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfOperation> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_stencil_operation_arguments::Operation) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_stencil_operation_arguments::Operation,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_qt_metacall(self as *const crate::SlotOfOperation as *mut crate::SlotOfOperation, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_qt_metacast(self as *const crate::SlotOfOperation as *mut crate::SlotOfOperation, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_stencil_operation_arguments::Operation) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_stencil_operation_arguments::Operation) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_stencil_operation_arguments::Operation,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_set(self as *const crate::SlotOfOperation as *mut crate::SlotOfOperation, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_stencil_operation_arguments::Operation) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_slot_(self as *const crate::SlotOfOperation as *mut crate::SlotOfOperation, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SlotOfQVectorOfQRayCasterHit {
    type Arguments = (*const crate::QVectorOfQRayCasterHit,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(QVector< Qt3DRender::QRayCasterHit > const &)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const crate::QVectorOfQRayCasterHit` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QVector<Qt3DRender::QRayCasterHit>&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQVectorOfQRayCasterHit {
    _unused: u8,
}
impl SlotOfQVectorOfQRayCasterHit {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_metaObject(self as *const crate::SlotOfQVectorOfQRayCasterHit)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<crate::QVectorOfQRayCasterHit>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQVectorOfQRayCasterHit> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::cpp_core::Ref<crate::QVectorOfQRayCasterHit>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *const crate::QVectorOfQRayCasterHit,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut crate::QVectorOfQRayCasterHit)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_qt_metacall(self as *const crate::SlotOfQVectorOfQRayCasterHit as *mut crate::SlotOfQVectorOfQRayCasterHit, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_qt_metacast(self as *const crate::SlotOfQVectorOfQRayCasterHit as *mut crate::SlotOfQVectorOfQRayCasterHit, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<crate::QVectorOfQRayCasterHit>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(::cpp_core::Ref<crate::QVectorOfQRayCasterHit>) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: *const crate::QVectorOfQRayCasterHit,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut crate::QVectorOfQRayCasterHit)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_set(self as *const crate::SlotOfQVectorOfQRayCasterHit as *mut crate::SlotOfQVectorOfQRayCasterHit, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_slot_(self as *const crate::SlotOfQVectorOfQRayCasterHit as *mut crate::SlotOfQVectorOfQRayCasterHit, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQAbstractTexture {
    type Arguments = (*mut crate::QAbstractTexture,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractTexture *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QAbstractTexture` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQAbstractTexture {
    _unused: u8,
}
impl SlotOfQAbstractTexture {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_metaObject(self as *const crate::SlotOfQAbstractTexture)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QAbstractTexture>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQAbstractTexture> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::qt_core::QPtr<crate::QAbstractTexture>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QAbstractTexture,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_qt_metacall(self as *const crate::SlotOfQAbstractTexture as *mut crate::SlotOfQAbstractTexture, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_qt_metacast(self as *const crate::SlotOfQAbstractTexture as *mut crate::SlotOfQAbstractTexture, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QAbstractTexture>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QAbstractTexture>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QAbstractTexture,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_set(self as *const crate::SlotOfQAbstractTexture as *mut crate::SlotOfQAbstractTexture, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAbstractTexture>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_slot_(self as *const crate::SlotOfQAbstractTexture as *mut crate::SlotOfQAbstractTexture, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAbstractTexture>>::cast_into(arg0).as_raw_ptr() as *mut crate::QAbstractTexture)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQPickEvent {
    type Arguments = (*mut crate::QPickEvent,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QPickEvent *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QPickEvent` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QPickEvent*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQPickEvent {
    _unused: u8,
}
impl SlotOfQPickEvent {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_metaObject(self as *const crate::SlotOfQPickEvent)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QPickEvent>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQPickEvent> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QPickEvent>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QPickEvent,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_qt_metacall(self as *const crate::SlotOfQPickEvent as *mut crate::SlotOfQPickEvent, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_qt_metacast(self as *const crate::SlotOfQPickEvent as *mut crate::SlotOfQPickEvent, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QPickEvent>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QPickEvent>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QPickEvent,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_set(self as *const crate::SlotOfQPickEvent as *mut crate::SlotOfQPickEvent, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QPickEvent>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_slot_(self as *const crate::SlotOfQPickEvent as *mut crate::SlotOfQPickEvent, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QPickEvent>>::cast_into(arg0).as_raw_ptr() as *mut crate::QPickEvent)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]

impl ::qt_core::AsReceiver for crate::SlotOfRunMode {
    type Arguments = (crate::q_abstract_ray_caster::RunMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractRayCaster::RunMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_ray_caster::RunMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractRayCaster::RunMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfRunMode {
    _unused: u8,
}
impl SlotOfRunMode {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_metaObject(self as *const crate::SlotOfRunMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn new<T: FnMut(crate::q_abstract_ray_caster::RunMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfRunMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_abstract_ray_caster::RunMode) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_ray_caster::RunMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_qt_metacall(self as *const crate::SlotOfRunMode as *mut crate::SlotOfRunMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_qt_metacast(self as *const crate::SlotOfRunMode as *mut crate::SlotOfRunMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn set<T: FnMut(crate::q_abstract_ray_caster::RunMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_ray_caster::RunMode) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_ray_caster::RunMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_set(self as *const crate::SlotOfRunMode as *mut crate::SlotOfRunMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_ray_caster::RunMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_slot_(self as *const crate::SlotOfRunMode as *mut crate::SlotOfRunMode, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        )))
    )]
    #[cfg(any(
        any(
            cpp_lib_version = "5.14.0",
            cpp_lib_version = "5.11.3",
            cpp_lib_version = "5.12.2",
            cpp_lib_version = "5.13.0"
        ),
        feature = "ritual_rustdoc"
    ))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfProjectionType {
    type Arguments = (crate::q_camera_lens::ProjectionType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QCameraLens::ProjectionType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_camera_lens::ProjectionType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QCameraLens::ProjectionType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfProjectionType {
    _unused: u8,
}
impl SlotOfProjectionType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_metaObject(self as *const crate::SlotOfProjectionType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_camera_lens::ProjectionType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfProjectionType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_camera_lens::ProjectionType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_camera_lens::ProjectionType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_qt_metacall(self as *const crate::SlotOfProjectionType as *mut crate::SlotOfProjectionType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_qt_metacast(self as *const crate::SlotOfProjectionType as *mut crate::SlotOfProjectionType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_camera_lens::ProjectionType) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_camera_lens::ProjectionType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_camera_lens::ProjectionType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_set(self as *const crate::SlotOfProjectionType as *mut crate::SlotOfProjectionType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_camera_lens::ProjectionType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_slot_(self as *const crate::SlotOfProjectionType as *mut crate::SlotOfProjectionType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQAttribute {
    type Arguments = (*mut crate::QAttribute,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAttribute *)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QAttribute` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAttribute*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQAttribute {
    _unused: u8,
}
impl SlotOfQAttribute {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_metaObject(self as *const crate::SlotOfQAttribute)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QAttribute>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQAttribute> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QAttribute>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QAttribute,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_qt_metacall(self as *const crate::SlotOfQAttribute as *mut crate::SlotOfQAttribute, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_qt_metacast(self as *const crate::SlotOfQAttribute as *mut crate::SlotOfQAttribute, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QAttribute>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QAttribute>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QAttribute,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_set(self as *const crate::SlotOfQAttribute as *mut crate::SlotOfQAttribute, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QAttribute>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_slot_(self as *const crate::SlotOfQAttribute as *mut crate::SlotOfQAttribute, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QAttribute>>::cast_into(arg0).as_raw_ptr() as *mut crate::QAttribute)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQBuffer {
    type Arguments = (*mut crate::QBuffer,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(Qt3DRender::QBuffer *)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QBuffer` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQBuffer {
    _unused: u8,
}
impl SlotOfQBuffer {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_metaObject(self as *const crate::SlotOfQBuffer)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QBuffer>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQBuffer> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QBuffer>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QBuffer,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_qt_metacall(self as *const crate::SlotOfQBuffer as *mut crate::SlotOfQBuffer, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_qt_metacast(self as *const crate::SlotOfQBuffer as *mut crate::SlotOfQBuffer, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QBuffer>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QBuffer>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QBuffer,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_set(self as *const crate::SlotOfQBuffer as *mut crate::SlotOfQBuffer, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QBuffer>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_slot_(self as *const crate::SlotOfQBuffer as *mut crate::SlotOfQBuffer, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QBuffer>>::cast_into(arg0).as_raw_ptr() as *mut crate::QBuffer)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfStatus4 {
    type Arguments = (crate::q_abstract_texture::Status,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAbstractTexture::Status)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_abstract_texture::Status` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAbstractTexture::Status```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfStatus4 {
    _unused: u8,
}
impl SlotOfStatus4 {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_metaObject(self as *const crate::SlotOfStatus4)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_abstract_texture::Status) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfStatus4> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_texture::Status) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_abstract_texture::Status,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_qt_metacall(self as *const crate::SlotOfStatus4 as *mut crate::SlotOfStatus4, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_qt_metacast(self as *const crate::SlotOfStatus4 as *mut crate::SlotOfStatus4, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_abstract_texture::Status) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_abstract_texture::Status) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_abstract_texture::Status,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_set(self as *const crate::SlotOfStatus4 as *mut crate::SlotOfStatus4, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_abstract_texture::Status) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_slot_(self as *const crate::SlotOfStatus4 as *mut crate::SlotOfStatus4, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfBufferType2 {
    type Arguments = (crate::q_buffer::BufferType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QBuffer::BufferType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_buffer::BufferType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QBuffer::BufferType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfBufferType2 {
    _unused: u8,
}
impl SlotOfBufferType2 {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_metaObject(self as *const crate::SlotOfBufferType2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_buffer::BufferType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfBufferType2> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_buffer::BufferType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_buffer::BufferType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_qt_metacall(self as *const crate::SlotOfBufferType2 as *mut crate::SlotOfBufferType2, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_qt_metacast(self as *const crate::SlotOfBufferType2 as *mut crate::SlotOfBufferType2, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_buffer::BufferType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_buffer::BufferType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_buffer::BufferType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_set(self as *const crate::SlotOfBufferType2 as *mut crate::SlotOfBufferType2, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_buffer::BufferType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_slot_(self as *const crate::SlotOfBufferType2 as *mut crate::SlotOfBufferType2, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQSize {
    type Arguments = (*const ::qt_core::QSize,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(QSize)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QSize` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```QSize```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQSize {
    _unused: u8,
}
impl SlotOfQSize {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_metaObject(
                self as *const crate::SlotOfQSize,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_qt_metacall(
            self as *const crate::SlotOfQSize as *mut crate::SlotOfQSize,
            arg1,
            arg2,
            arg3,
        )
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_qt_metacast(
            self as *const crate::SlotOfQSize as *mut crate::SlotOfQSize,
            arg1,
        )
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QSize>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_slot_(
            self as *const crate::SlotOfQSize as *mut crate::SlotOfQSize,
            ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QSize>>::cast_into(arg0).as_raw_ptr(),
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQLevelOfDetailBoundingSphere {
    type Arguments = (*const crate::QLevelOfDetailBoundingSphere,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QLevelOfDetailBoundingSphere const &)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const crate::QLevelOfDetailBoundingSphere` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const Qt3DRender::QLevelOfDetailBoundingSphere&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQLevelOfDetailBoundingSphere {
    _unused: u8,
}
impl SlotOfQLevelOfDetailBoundingSphere {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_metaObject(self as *const crate::SlotOfQLevelOfDetailBoundingSphere)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQLevelOfDetailBoundingSphere> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *const crate::QLevelOfDetailBoundingSphere,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut crate::QLevelOfDetailBoundingSphere)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_qt_metacall(self as *const crate::SlotOfQLevelOfDetailBoundingSphere as *mut crate::SlotOfQLevelOfDetailBoundingSphere, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_qt_metacast(self as *const crate::SlotOfQLevelOfDetailBoundingSphere as *mut crate::SlotOfQLevelOfDetailBoundingSphere, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: *const crate::QLevelOfDetailBoundingSphere,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut crate::QLevelOfDetailBoundingSphere)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_set(self as *const crate::SlotOfQLevelOfDetailBoundingSphere as *mut crate::SlotOfQLevelOfDetailBoundingSphere, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_slot_(self as *const crate::SlotOfQLevelOfDetailBoundingSphere as *mut crate::SlotOfQLevelOfDetailBoundingSphere, ::cpp_core::CastInto::<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfOpenglProfile {
    type Arguments = (crate::q_graphics_api_filter::OpenGLProfile,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QGraphicsApiFilter::OpenGLProfile)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_graphics_api_filter::OpenGLProfile` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGraphicsApiFilter::OpenGLProfile```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfOpenglProfile {
    _unused: u8,
}
impl SlotOfOpenglProfile {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_metaObject(self as *const crate::SlotOfOpenglProfile)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_graphics_api_filter::OpenGLProfile) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfOpenglProfile> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_graphics_api_filter::OpenGLProfile) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_graphics_api_filter::OpenGLProfile,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_qt_metacall(self as *const crate::SlotOfOpenglProfile as *mut crate::SlotOfOpenglProfile, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_qt_metacast(self as *const crate::SlotOfOpenglProfile as *mut crate::SlotOfOpenglProfile, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_graphics_api_filter::OpenGLProfile) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_graphics_api_filter::OpenGLProfile) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_graphics_api_filter::OpenGLProfile,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_set(self as *const crate::SlotOfOpenglProfile as *mut crate::SlotOfOpenglProfile, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_graphics_api_filter::OpenGLProfile) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_slot_(self as *const crate::SlotOfOpenglProfile as *mut crate::SlotOfOpenglProfile, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQStringList {
    type Arguments = (*const ::qt_core::QStringList,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(QStringList const &)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*const ::qt_core::QStringList` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```const QStringList&```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQStringList {
    _unused: u8,
}
impl SlotOfQStringList {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_metaObject(self as *const crate::SlotOfQStringList)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::cpp_core::Ref<::qt_core::QStringList>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQStringList> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(::cpp_core::Ref<::qt_core::QStringList>) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: *const ::qt_core::QStringList,
            ) {
                unsafe {
                    (*(data as *mut T))(
                        ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QStringList)
                            .expect("attempted to construct a null Ref"),
                    )
                }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_qt_metacall(self as *const crate::SlotOfQStringList as *mut crate::SlotOfQStringList, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_qt_metacast(self as *const crate::SlotOfQStringList as *mut crate::SlotOfQStringList, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::cpp_core::Ref<::qt_core::QStringList>) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::cpp_core::Ref<::qt_core::QStringList>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *const ::qt_core::QStringList,
        ) {
            unsafe {
                (*(data as *mut T))(
                    ::cpp_core::Ref::from_raw(arg0 as *mut ::qt_core::QStringList)
                        .expect("attempted to construct a null Ref"),
                )
            }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_set(self as *const crate::SlotOfQStringList as *mut crate::SlotOfQStringList, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(
        &self,
        arg0: impl ::cpp_core::CastInto<::cpp_core::Ref<::qt_core::QStringList>>,
    ) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_slot_(self as *const crate::SlotOfQStringList as *mut crate::SlotOfQStringList, ::cpp_core::CastInto::<::cpp_core::Ref<::qt_core::QStringList>>::cast_into(arg0).as_raw_ptr())
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfPrimitiveType {
    type Arguments = (crate::q_geometry_renderer::PrimitiveType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QGeometryRenderer::PrimitiveType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_geometry_renderer::PrimitiveType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QGeometryRenderer::PrimitiveType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfPrimitiveType {
    _unused: u8,
}
impl SlotOfPrimitiveType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_metaObject(self as *const crate::SlotOfPrimitiveType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_geometry_renderer::PrimitiveType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfPrimitiveType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_geometry_renderer::PrimitiveType) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_geometry_renderer::PrimitiveType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_qt_metacall(self as *const crate::SlotOfPrimitiveType as *mut crate::SlotOfPrimitiveType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_qt_metacast(self as *const crate::SlotOfPrimitiveType as *mut crate::SlotOfPrimitiveType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_geometry_renderer::PrimitiveType) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_geometry_renderer::PrimitiveType) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_geometry_renderer::PrimitiveType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_set(self as *const crate::SlotOfPrimitiveType as *mut crate::SlotOfPrimitiveType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_geometry_renderer::PrimitiveType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_slot_(self as *const crate::SlotOfPrimitiveType as *mut crate::SlotOfPrimitiveType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfAttachmentPoint {
    type Arguments = (crate::q_render_target_output::AttachmentPoint,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QRenderTargetOutput::AttachmentPoint)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_render_target_output::AttachmentPoint` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfAttachmentPoint {
    _unused: u8,
}
impl SlotOfAttachmentPoint {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_metaObject(self as *const crate::SlotOfAttachmentPoint)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_render_target_output::AttachmentPoint) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfAttachmentPoint> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_render_target_output::AttachmentPoint) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_render_target_output::AttachmentPoint,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_qt_metacall(self as *const crate::SlotOfAttachmentPoint as *mut crate::SlotOfAttachmentPoint, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_qt_metacast(self as *const crate::SlotOfAttachmentPoint as *mut crate::SlotOfAttachmentPoint, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_render_target_output::AttachmentPoint) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_render_target_output::AttachmentPoint) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_render_target_output::AttachmentPoint,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_set(self as *const crate::SlotOfAttachmentPoint as *mut crate::SlotOfAttachmentPoint, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_render_target_output::AttachmentPoint) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_slot_(self as *const crate::SlotOfAttachmentPoint as *mut crate::SlotOfAttachmentPoint, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQCamera {
    type Arguments = (*mut crate::QCamera,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(Qt3DRender::QCamera *)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QCamera` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QCamera*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQCamera {
    _unused: u8,
}
impl SlotOfQCamera {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_metaObject(self as *const crate::SlotOfQCamera)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QCamera>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQCamera> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QCamera>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QCamera,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_qt_metacall(self as *const crate::SlotOfQCamera as *mut crate::SlotOfQCamera, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_qt_metacast(self as *const crate::SlotOfQCamera as *mut crate::SlotOfQCamera, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QCamera>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QCamera>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QCamera,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_set(self as *const crate::SlotOfQCamera as *mut crate::SlotOfQCamera, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QCamera>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_slot_(self as *const crate::SlotOfQCamera as *mut crate::SlotOfQCamera, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QCamera>>::cast_into(arg0).as_raw_ptr() as *mut crate::QCamera)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfWindingDirection {
    type Arguments = (crate::q_front_face::WindingDirection,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QFrontFace::WindingDirection)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_front_face::WindingDirection` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QFrontFace::WindingDirection```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfWindingDirection {
    _unused: u8,
}
impl SlotOfWindingDirection {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_metaObject(self as *const crate::SlotOfWindingDirection)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_front_face::WindingDirection) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfWindingDirection> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_front_face::WindingDirection) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_front_face::WindingDirection,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_qt_metacall(self as *const crate::SlotOfWindingDirection as *mut crate::SlotOfWindingDirection, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_qt_metacast(self as *const crate::SlotOfWindingDirection as *mut crate::SlotOfWindingDirection, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_front_face::WindingDirection) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_front_face::WindingDirection) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_front_face::WindingDirection,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_set(self as *const crate::SlotOfWindingDirection as *mut crate::SlotOfWindingDirection, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_front_face::WindingDirection) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_slot_(self as *const crate::SlotOfWindingDirection as *mut crate::SlotOfWindingDirection, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfQEffect {
    type Arguments = (*mut crate::QEffect,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(Qt3DRender::QEffect *)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `*mut crate::QEffect` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QEffect*```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfQEffect {
    _unused: u8,
}
impl SlotOfQEffect {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_metaObject(self as *const crate::SlotOfQEffect)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::qt_core::QPtr<crate::QEffect>) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfQEffect> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QEffect>) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: *mut crate::QEffect,
            ) {
                unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_qt_metacall(self as *const crate::SlotOfQEffect as *mut crate::SlotOfQEffect, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_qt_metacast(self as *const crate::SlotOfQEffect as *mut crate::SlotOfQEffect, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::qt_core::QPtr<crate::QEffect>) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::qt_core::QPtr<crate::QEffect>) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: *mut crate::QEffect,
        ) {
            unsafe { (*(data as *mut T))(::qt_core::QPtr::from_raw(arg0)) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_set(self as *const crate::SlotOfQEffect as *mut crate::SlotOfQEffect, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: impl ::cpp_core::CastInto<::cpp_core::Ptr<crate::QEffect>>) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_slot_(self as *const crate::SlotOfQEffect as *mut crate::SlotOfQEffect, ::cpp_core::CastInto::<::cpp_core::Ptr<crate::QEffect>>::cast_into(arg0).as_raw_ptr() as *mut crate::QEffect)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfStencilFaceMode {
    type Arguments = (crate::q_stencil_test_arguments::StencilFaceMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QStencilTestArguments::StencilFaceMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_stencil_test_arguments::StencilFaceMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QStencilTestArguments::StencilFaceMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfStencilFaceMode {
    _unused: u8,
}
impl SlotOfStencilFaceMode {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_metaObject(self as *const crate::SlotOfStencilFaceMode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_stencil_test_arguments::StencilFaceMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfStencilFaceMode> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<
                T: FnMut(crate::q_stencil_test_arguments::StencilFaceMode) + 'static,
            >(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_stencil_test_arguments::StencilFaceMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_qt_metacall(self as *const crate::SlotOfStencilFaceMode as *mut crate::SlotOfStencilFaceMode, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_qt_metacast(self as *const crate::SlotOfStencilFaceMode as *mut crate::SlotOfStencilFaceMode, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_stencil_test_arguments::StencilFaceMode) + 'static>(
        &self,
        callback: T,
    ) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<
            T: FnMut(crate::q_stencil_test_arguments::StencilFaceMode) + 'static,
        >(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_stencil_test_arguments::StencilFaceMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_set(self as *const crate::SlotOfStencilFaceMode as *mut crate::SlotOfStencilFaceMode, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_stencil_test_arguments::StencilFaceMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_slot_(self as *const crate::SlotOfStencilFaceMode as *mut crate::SlotOfStencilFaceMode, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]

impl ::qt_core::AsReceiver for crate::SlotOfFaceMode2 {
    type Arguments = (crate::q_raster_mode::FaceMode,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QRasterMode::FaceMode)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_raster_mode::FaceMode` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QRasterMode::FaceMode```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfFaceMode2 {
    _unused: u8,
}
impl SlotOfFaceMode2 {
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_metaObject(self as *const crate::SlotOfFaceMode2)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn new<T: FnMut(crate::q_raster_mode::FaceMode) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfFaceMode2> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_raster_mode::FaceMode) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_raster_mode::FaceMode,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_qt_metacall(self as *const crate::SlotOfFaceMode2 as *mut crate::SlotOfFaceMode2, arg1, arg2, arg3)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_qt_metacast(self as *const crate::SlotOfFaceMode2 as *mut crate::SlotOfFaceMode2, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn set<T: FnMut(crate::q_raster_mode::FaceMode) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_raster_mode::FaceMode) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_raster_mode::FaceMode,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_set(self as *const crate::SlotOfFaceMode2 as *mut crate::SlotOfFaceMode2, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn slot(&self, arg0: crate::q_raster_mode::FaceMode) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_slot_(self as *const crate::SlotOfFaceMode2 as *mut crate::SlotOfFaceMode2, arg0)
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    #[cfg_attr(
        feature = "ritual_rustdoc_nightly",
        doc(cfg(cpp_lib_version = "5.14.0"))
    )]
    #[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfAttributeType {
    type Arguments = (crate::q_attribute::AttributeType,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(
                    b"1slot_(Qt3DRender::QAttribute::AttributeType)\0",
                ),
            )
        }
    }
}

/// Binds a Qt signal with arguments `crate::q_attribute::AttributeType` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```Qt3DRender::QAttribute::AttributeType```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfAttributeType {
    _unused: u8,
}
impl SlotOfAttributeType {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_metaObject(self as *const crate::SlotOfAttributeType)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(crate::q_attribute::AttributeType) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfAttributeType> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(crate::q_attribute::AttributeType) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: crate::q_attribute::AttributeType,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_qt_metacall(self as *const crate::SlotOfAttributeType as *mut crate::SlotOfAttributeType, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_qt_metacast(self as *const crate::SlotOfAttributeType as *mut crate::SlotOfAttributeType, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(crate::q_attribute::AttributeType) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(crate::q_attribute::AttributeType) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: crate::q_attribute::AttributeType,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_set(self as *const crate::SlotOfAttributeType as *mut crate::SlotOfAttributeType, Some(ffi_callback::<T>), Some(deleter::<T>), data)
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: crate::q_attribute::AttributeType) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_slot_(self as *const crate::SlotOfAttributeType as *mut crate::SlotOfAttributeType, arg0)
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_tr(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_trUtf8(s, c, n)
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::qt_core::AsReceiver for crate::SlotOfUint {
    type Arguments = (::std::os::raw::c_uint,);
    fn as_receiver(&self) -> ::qt_core::Receiver<Self::Arguments> {
        unsafe {
            ::qt_core::Receiver::new(
                ::cpp_core::Ref::from_raw(self).expect("attempted to construct a null Ref"),
                ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"1slot_(unsigned int)\0"),
            )
        }
    }
}

/// Binds a Qt signal with arguments `::std::os::raw::c_uint` to a Rust closure.
///
/// Corresponding C++ argument types: (<span style='color: green;'>```unsigned int```</span>).
///
/// Create an object using `new()` and bind your closure using `set()`. The closure will be called with the signal's arguments when the slot is invoked. Use `connect()` method of a `qt_core::Signal` object to connect the signal to this slot. The closure will be executed each time the slot is invoked until source signals are disconnected or the slot object is destroyed.
///
/// The slot object takes ownership of the passed closure. If `set()` is called again, previously set closure is dropped. Make sure that the slot object does not outlive objects referenced by the closure.
///
/// If `set()` was not called, slot invocation has no effect.
#[repr(C)]
pub struct SlotOfUint {
    _unused: u8,
}
impl SlotOfUint {
    #[inline(always)]
    pub unsafe fn meta_object(&self) -> ::cpp_core::Ptr<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_metaObject(self as *const crate::SlotOfUint)
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
    }

    /// Creates a new object.
    #[inline(always)]
    pub unsafe fn new<T: FnMut(::std::os::raw::c_uint) + 'static>(
        parent: impl ::cpp_core::CastInto<::cpp_core::Ptr<::qt_core::QObject>>,
        callback: T,
    ) -> ::qt_core::QBox<crate::SlotOfUint> {
        let ffi_result = {
            extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
                unsafe {
                    let _ = Box::from_raw(data as *mut T);
                }
            }
            extern "C" fn ffi_callback<T: FnMut(::std::os::raw::c_uint) + 'static>(
                data: *mut ::std::ffi::c_void,
                arg0: ::std::os::raw::c_uint,
            ) {
                unsafe { (*(data as *mut T))(arg0) }
            }
            let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int(::cpp_core::CastInto::<::cpp_core::Ptr<::qt_core::QObject>>::cast_into(parent).as_raw_ptr() as *mut ::qt_core::QObject, Some(ffi_callback::<T>), Some(deleter::<T>), data)
        };
        ::qt_core::QBox::from_raw(ffi_result)
    }

    #[inline(always)]
    pub unsafe fn qt_metacall(
        &self,
        arg1: ::qt_core::q_meta_object::Call,
        arg2: ::std::os::raw::c_int,
        arg3: *mut *mut ::std::ffi::c_void,
    ) -> ::std::os::raw::c_int {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_qt_metacall(self as *const crate::SlotOfUint as *mut crate::SlotOfUint, arg1, arg2, arg3)
    }

    #[inline(always)]
    pub unsafe fn qt_metacast(
        &self,
        arg1: *const ::std::os::raw::c_char,
    ) -> *mut ::std::ffi::c_void {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_qt_metacast(self as *const crate::SlotOfUint as *mut crate::SlotOfUint, arg1)
    }

    /// Assigns `callback` as the signal handler.
    ///
    /// `func` will be called each time a connected signal is emitted. Any previously assigned function will be deregistered. Passing `None` will deregister the handler without setting a new one.
    #[inline(always)]
    pub unsafe fn set<T: FnMut(::std::os::raw::c_uint) + 'static>(&self, callback: T) {
        extern "C" fn deleter<T>(data: *mut ::std::ffi::c_void) {
            unsafe {
                let _ = Box::from_raw(data as *mut T);
            }
        }
        extern "C" fn ffi_callback<T: FnMut(::std::os::raw::c_uint) + 'static>(
            data: *mut ::std::ffi::c_void,
            arg0: ::std::os::raw::c_uint,
        ) {
            unsafe { (*(data as *mut T))(arg0) }
        }
        let data = Box::into_raw(Box::new(callback)) as *mut ::std::ffi::c_void;
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_set(
            self as *const crate::SlotOfUint as *mut crate::SlotOfUint,
            Some(ffi_callback::<T>),
            Some(deleter::<T>),
            data,
        )
    }

    /// Calls the slot directly, invoking the assigned handler (if any).
    #[inline(always)]
    pub unsafe fn slot(&self, arg0: ::std::os::raw::c_uint) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_slot_(
            self as *const crate::SlotOfUint as *mut crate::SlotOfUint,
            arg0,
        )
    }

    #[inline(always)]
    pub unsafe fn static_meta_object() -> ::cpp_core::Ref<::qt_core::QMetaObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_staticMetaObject()
        };
        ::cpp_core::Ref::from_raw(ffi_result as *mut ::qt_core::QMetaObject)
            .expect("attempted to construct a null Ref")
    }

    #[inline(always)]
    pub unsafe fn tr(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_tr(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }

    #[inline(always)]
    pub unsafe fn tr_utf8(
        s: *const ::std::os::raw::c_char,
        c: *const ::std::os::raw::c_char,
        n: ::std::os::raw::c_int,
    ) -> ::cpp_core::CppBox<::qt_core::QString> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_trUtf8(
                s, c, n,
            )
        };
        ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
    }
}

impl ::cpp_core::CppDeletable for crate::QAbstractFunctor {
    /// <p>Desctructor</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAbstractFunctor::~QAbstractFunctor()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractfunctor.html#dtor.QAbstractFunctor">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Desctructor</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractFunctor_dQAbstractFunctor(
            self as *const crate::QAbstractFunctor as *mut crate::QAbstractFunctor,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAbstractLight {
    /// <p>Destroys the instance of QAbstractLight.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAbstractLight::~QAbstractLight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qabstractlight.html#dtor.QAbstractLight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QAbstractLight.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractLight_dQAbstractLight(
            self as *const crate::QAbstractLight as *mut crate::QAbstractLight,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureImageData {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void Qt3DRender::QTextureImageData::~QTextureImageData()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageData_dQTextureImageData(
            self as *const crate::QTextureImageData as *mut crate::QTextureImageData,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAbstractTexture::~QAbstractTexture()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTexture_dQAbstractTexture(
            self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureImageDataGenerator {
    /// <p>Destroys the instance of QTextureImageDataGenerator. The destructor is virtual.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureImageDataGenerator::~QTextureImageDataGenerator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html#dtor.QTextureImageDataGenerator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QTextureImageDataGenerator. The destructor is virtual.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageDataGenerator_dQTextureImageDataGenerator(self as *const crate::QTextureImageDataGenerator as *mut crate::QTextureImageDataGenerator)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextureImageDataGenerator>>
    for crate::QTextureImageDataGenerator
{
    /// <p>Implement the method to compare this texture data generator to <i>other</i>. Returns a boolean that indicates whether the <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> needs to reload the <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">QTextureImageData</a>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool Qt3DRender::QTextureImageDataGenerator::operator==(const Qt3DRender::QTextureImageDataGenerator& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedatagenerator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Implement the method to compare this texture data generator to <i>other</i>. Returns a boolean that indicates whether the <a href="http://doc.qt.io/qt-5/qt3drender-qabstracttextureimage.html">QAbstractTextureImage</a> needs to reload the <a href="http://doc.qt.io/qt-5/qt3drender-qtextureimagedata.html">QTextureImageData</a>.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QTextureImageDataGenerator>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImageDataGenerator_operator__1(
                self as *const crate::QTextureImageDataGenerator,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QAbstractTextureImage {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAbstractTextureImage::~QAbstractTextureImage()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractTextureImage_dQAbstractTextureImage(
            self as *const crate::QAbstractTextureImage as *mut crate::QAbstractTextureImage,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderState::~QRenderState()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderState_dQRenderState(
            self as *const crate::QRenderState as *mut crate::QRenderState,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAlphaCoverage {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAlphaCoverage::~QAlphaCoverage()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaCoverage_dQAlphaCoverage(
            self as *const crate::QAlphaCoverage as *mut crate::QAlphaCoverage,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAlphaTest {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAlphaTest::~QAlphaTest()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAlphaTest_dQAlphaTest(
            self as *const crate::QAlphaTest as *mut crate::QAlphaTest,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QAttribute {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAttribute::~QAttribute()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAttribute_dQAttribute(
            self as *const crate::QAttribute as *mut crate::QAttribute,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QBlendEquation {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QBlendEquation::~QBlendEquation()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquation_dQBlendEquation(
            self as *const crate::QBlendEquation as *mut crate::QBlendEquation,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QBlendEquationArguments {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QBlendEquationArguments::~QBlendEquationArguments()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlendEquationArguments_dQBlendEquationArguments(self as *const crate::QBlendEquationArguments as *mut crate::QBlendEquationArguments)
    }
}

impl ::cpp_core::CppDeletable for crate::QBuffer {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QBuffer::~QBuffer()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBuffer_dQBuffer(
            self as *const crate::QBuffer as *mut crate::QBuffer,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QFrameGraphNode::~QFrameGraphNode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNode_dQFrameGraphNode(
            self as *const crate::QFrameGraphNode as *mut crate::QFrameGraphNode,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QBufferCapture {
    /// <p>Destroys the instance of QBufferCapture.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QBufferCapture::~QBufferCapture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbuffercapture.html#dtor.QBufferCapture">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QBufferCapture.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferCapture_dQBufferCapture(
            self as *const crate::QBufferCapture as *mut crate::QBufferCapture,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QBufferDataGenerator {
    /// <p>Destroys the instance of QBufferDataGenerator. The destructor is virtual.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QBufferDataGenerator::~QBufferDataGenerator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html#dtor.QBufferDataGenerator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QBufferDataGenerator. The destructor is virtual.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferDataGenerator_dQBufferDataGenerator(
            self as *const crate::QBufferDataGenerator as *mut crate::QBufferDataGenerator,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QBufferDataGenerator>>
    for crate::QBufferDataGenerator
{
    /// <p>Should be reimplemented to return true when two generators (the one you are comparing against and the <i>other</i> generator) are identical, false otherwise.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool Qt3DRender::QBufferDataGenerator::operator==(const Qt3DRender::QBufferDataGenerator& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qbufferdatagenerator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Should be reimplemented to return true when two generators (the one you are comparing against and the <i>other</i> generator) are identical, false otherwise.</p>
    /// <p><b>Note: </b>The renderer uses this comparison to decide whether data for a buffer needs to be reuploaded or not when the functor on a <a href="http://doc.qt.io/qt-5/qt3drender-qbuffer.html">Qt3DRender::QBuffer</a> changes.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QBufferDataGenerator>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBufferDataGenerator_operator__1(
                self as *const crate::QBufferDataGenerator,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QCameraLens {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QCameraLens::~QCameraLens()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraLens_dQCameraLens(
            self as *const crate::QCameraLens as *mut crate::QCameraLens,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QCamera {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QCamera::~QCamera()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCamera_dQCamera(
            self as *const crate::QCamera as *mut crate::QCamera,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QCameraSelector {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QCameraSelector::~QCameraSelector()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCameraSelector_dQCameraSelector(
            self as *const crate::QCameraSelector as *mut crate::QCameraSelector,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderTargetOutput {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderTargetOutput::~QRenderTargetOutput()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetOutput_dQRenderTargetOutput(
            self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QClearBuffers {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QClearBuffers::~QClearBuffers()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClearBuffers_dQClearBuffers(
            self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QClipPlane {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QClipPlane::~QClipPlane()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QClipPlane_dQClipPlane(
            self as *const crate::QClipPlane as *mut crate::QClipPlane,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QColorMask {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QColorMask::~QColorMask()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QColorMask_dQColorMask(
            self as *const crate::QColorMask as *mut crate::QColorMask,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QComputeCommand {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QComputeCommand::~QComputeCommand()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QComputeCommand_dQComputeCommand(
            self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QCullFace {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QCullFace::~QCullFace()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QCullFace_dQCullFace(
            self as *const crate::QCullFace as *mut crate::QCullFace,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QDepthTest {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QDepthTest::~QDepthTest()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthTest_dQDepthTest(
            self as *const crate::QDepthTest as *mut crate::QDepthTest,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QDirectionalLight {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QDirectionalLight::~QDirectionalLight()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDirectionalLight_dQDirectionalLight(
            self as *const crate::QDirectionalLight as *mut crate::QDirectionalLight,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QDispatchCompute {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QDispatchCompute::~QDispatchCompute()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDispatchCompute_dQDispatchCompute(
            self as *const crate::QDispatchCompute as *mut crate::QDispatchCompute,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QDithering {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QDithering::~QDithering()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDithering_dQDithering(
            self as *const crate::QDithering as *mut crate::QDithering,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QEffect {
    /// <p>Destroys the instance of QEffect.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QEffect::~QEffect()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qeffect.html#dtor.QEffect">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QEffect.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEffect_dQEffect(
            self as *const crate::QEffect as *mut crate::QEffect,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QEnvironmentLight {
    /// <p>Destroys the instance of QEnvironmentLight.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QEnvironmentLight::~QEnvironmentLight()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qenvironmentlight.html#dtor.QEnvironmentLight">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QEnvironmentLight.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QEnvironmentLight_dQEnvironmentLight(
            self as *const crate::QEnvironmentLight as *mut crate::QEnvironmentLight,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QFilterKey {
    /// <p>Destroys the instance of QFilterKey.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QFilterKey::~QFilterKey()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qfilterkey.html#dtor.QFilterKey">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QFilterKey.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFilterKey_dQFilterKey(
            self as *const crate::QFilterKey as *mut crate::QFilterKey,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QFrameGraphNodeCreatedChangeBase {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QFrameGraphNodeCreatedChangeBase::~QFrameGraphNodeCreatedChangeBase()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrameGraphNodeCreatedChangeBase_dQFrameGraphNodeCreatedChangeBase(self as *const crate::QFrameGraphNodeCreatedChangeBase as *mut crate::QFrameGraphNodeCreatedChangeBase)
    }
}

impl ::cpp_core::CppDeletable for crate::QFrontFace {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QFrontFace::~QFrontFace()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrontFace_dQFrontFace(
            self as *const crate::QFrontFace as *mut crate::QFrontFace,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QFrustumCulling {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QFrustumCulling::~QFrustumCulling()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QFrustumCulling_dQFrustumCulling(
            self as *const crate::QFrustumCulling as *mut crate::QFrustumCulling,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QGeometry {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QGeometry::~QGeometry()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometry_dQGeometry(
            self as *const crate::QGeometry as *mut crate::QGeometry,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QGeometryFactory {
    /// <p>Destroys the instance of QGeometryFactory. The destructor is virtual.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QGeometryFactory::~QGeometryFactory()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryfactory.html#dtor.QGeometryFactory">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QGeometryFactory. The destructor is virtual.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryFactory_dQGeometryFactory(
            self as *const crate::QGeometryFactory as *mut crate::QGeometryFactory,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QGeometryFactory>> for crate::QGeometryFactory {
    /// <p>Compares the factory with the factory specified in <i>other</i>. Returns true if they are equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool Qt3DRender::QGeometryFactory::operator==(const Qt3DRender::QGeometryFactory& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qgeometryfactory.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Compares the factory with the factory specified in <i>other</i>. Returns true if they are equal.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QGeometryFactory>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryFactory_operator__1(
                self as *const crate::QGeometryFactory,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QGeometryRenderer {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QGeometryRenderer::~QGeometryRenderer()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGeometryRenderer_dQGeometryRenderer(
            self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QGraphicsApiFilter {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QGraphicsApiFilter::~QGraphicsApiFilter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QGraphicsApiFilter_dQGraphicsApiFilter(
            self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QLayer {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QLayer::~QLayer()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayer_dQLayer(
            self as *const crate::QLayer as *mut crate::QLayer,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QLayerFilter {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QLayerFilter::~QLayerFilter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLayerFilter_dQLayerFilter(
            self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QLevelOfDetailBoundingSphere {
    /// <p>Destroys the instance of QLevelOfDetailBoundingSphere.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void Qt3DRender::QLevelOfDetailBoundingSphere::~QLevelOfDetailBoundingSphere()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlevelofdetailboundingsphere.html#dtor.QLevelOfDetailBoundingSphere">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QLevelOfDetailBoundingSphere.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_dQLevelOfDetailBoundingSphere(self as *const crate::QLevelOfDetailBoundingSphere as *mut crate::QLevelOfDetailBoundingSphere)
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>>
    for crate::QLevelOfDetailBoundingSphere
{
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::QLevelOfDetailBoundingSphere::operator==(const Qt3DRender::QLevelOfDetailBoundingSphere& other) const```</span>.
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QLevelOfDetailBoundingSphere>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailBoundingSphere_operator__(
                self as *const crate::QLevelOfDetailBoundingSphere,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QLevelOfDetail {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QLevelOfDetail::~QLevelOfDetail()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetail_dQLevelOfDetail(
            self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QLevelOfDetailSwitch {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QLevelOfDetailSwitch::~QLevelOfDetailSwitch()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLevelOfDetailSwitch_dQLevelOfDetailSwitch(
            self as *const crate::QLevelOfDetailSwitch as *mut crate::QLevelOfDetailSwitch,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QMaterial {
    /// <p>Destroys the instance of QMaterial.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QMaterial::~QMaterial()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmaterial.html#dtor.QMaterial">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QMaterial.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMaterial_dQMaterial(
            self as *const crate::QMaterial as *mut crate::QMaterial,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QMemoryBarrier {
    /// <p>Destroys the instance of QMemoryBarrier.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QMemoryBarrier::~QMemoryBarrier()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qmemorybarrier.html#dtor.QMemoryBarrier">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QMemoryBarrier.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMemoryBarrier_dQMemoryBarrier(
            self as *const crate::QMemoryBarrier as *mut crate::QMemoryBarrier,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QMesh {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QMesh::~QMesh()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMesh_dQMesh(
            self as *const crate::QMesh as *mut crate::QMesh,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QMultiSampleAntiAliasing {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QMultiSampleAntiAliasing::~QMultiSampleAntiAliasing()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QMultiSampleAntiAliasing_dQMultiSampleAntiAliasing(self as *const crate::QMultiSampleAntiAliasing as *mut crate::QMultiSampleAntiAliasing)
    }
}

impl ::cpp_core::CppDeletable for crate::QNoDepthMask {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QNoDepthMask::~QNoDepthMask()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDepthMask_dQNoDepthMask(
            self as *const crate::QNoDepthMask as *mut crate::QNoDepthMask,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QNoDraw {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QNoDraw::~QNoDraw()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoDraw_dQNoDraw(
            self as *const crate::QNoDraw as *mut crate::QNoDraw,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QObjectPicker {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QObjectPicker::~QObjectPicker()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QObjectPicker_dQObjectPicker(
            self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPaintedTextureImage {
    /// <p>Destroys the instance of QPaintedTextureImage.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPaintedTextureImage::~QPaintedTextureImage()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#dtor.QPaintedTextureImage">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QPaintedTextureImage.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_dQPaintedTextureImage(
            self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
        )
    }
}

impl ::cpp_core::vector_ops::Size for crate::QPaintedTextureImage {
    /// <p>This property holds the size of the texture image.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QSize Qt3DRender::QPaintedTextureImage::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#size-prop">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This property holds the size of the texture image.</p>
    /// <p><b>Access functions:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> QSize </td><td class="memItemRight bottomAlign"><span class="name"><b>size</b></span>() const</td></tr>
    /// <tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#setSize">setSize</a></b></span>(QSize <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>Notifier signal:</b></p>
    /// <div class="table"><table class="alignedsummary">
    /// <tbody><tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>sizeChanged</b></span>(QSize <i>size</i>)</td></tr>
    /// </tbody></table></div>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#height-prop">height</a> and <a href="http://doc.qt.io/qt-5/qt3drender-qpaintedtextureimage.html#width-prop">width</a>.</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPaintedTextureImage_size(
                self as *const crate::QPaintedTextureImage,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::CppDeletable for crate::QParameter {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QParameter::~QParameter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QParameter_dQParameter(
            self as *const crate::QParameter as *mut crate::QParameter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPickEvent::~QPickEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickEvent_dQPickEvent(
            self as *const crate::QPickEvent as *mut crate::QPickEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPickingSettings {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPickingSettings::~QPickingSettings()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickingSettings_dQPickingSettings(
            self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPickTriangleEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPickTriangleEvent::~QPickTriangleEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickTriangleEvent_dQPickTriangleEvent(
            self as *const crate::QPickTriangleEvent as *mut crate::QPickTriangleEvent,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPointLight {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPointLight::~QPointLight()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointLight_dQPointLight(
            self as *const crate::QPointLight as *mut crate::QPointLight,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPointSize {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPointSize::~QPointSize()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPointSize_dQPointSize(
            self as *const crate::QPointSize as *mut crate::QPointSize,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QPolygonOffset {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPolygonOffset::~QPolygonOffset()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPolygonOffset_dQPolygonOffset(
            self as *const crate::QPolygonOffset as *mut crate::QPolygonOffset,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderAspect {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderAspect::~QRenderAspect()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderAspect_dQRenderAspect(
            self as *const crate::QRenderAspect as *mut crate::QRenderAspect,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QShaderProgram {
    /// <p>Destroys the instance of QShaderProgram.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QShaderProgram::~QShaderProgram()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogram.html#dtor.QShaderProgram">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QShaderProgram.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgram_dQShaderProgram(
            self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderPass {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderPass::~QRenderPass()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPass_dQRenderPass(
            self as *const crate::QRenderPass as *mut crate::QRenderPass,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderPassFilter {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderPassFilter::~QRenderPassFilter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderPassFilter_dQRenderPassFilter(
            self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderSettings {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderSettings::~QRenderSettings()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSettings_dQRenderSettings(
            self as *const crate::QRenderSettings as *mut crate::QRenderSettings,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderStateSet {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderStateSet::~QRenderStateSet()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderStateSet_dQRenderStateSet(
            self as *const crate::QRenderStateSet as *mut crate::QRenderStateSet,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderSurfaceSelector {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderSurfaceSelector::~QRenderSurfaceSelector()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderSurfaceSelector_dQRenderSurfaceSelector(
            self as *const crate::QRenderSurfaceSelector as *mut crate::QRenderSurfaceSelector,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderTarget::~QRenderTarget()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTarget_dQRenderTarget(
            self as *const crate::QRenderTarget as *mut crate::QRenderTarget,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderTargetSelector {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRenderTargetSelector::~QRenderTargetSelector()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderTargetSelector_dQRenderTargetSelector(
            self as *const crate::QRenderTargetSelector as *mut crate::QRenderTargetSelector,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QSceneLoader {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QSceneLoader::~QSceneLoader()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSceneLoader_dQSceneLoader(
            self as *const crate::QSceneLoader as *mut crate::QSceneLoader,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QScissorTest {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QScissorTest::~QScissorTest()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScissorTest_dQScissorTest(
            self as *const crate::QScissorTest as *mut crate::QScissorTest,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QSeamlessCubemap {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QSeamlessCubemap::~QSeamlessCubemap()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSeamlessCubemap_dQSeamlessCubemap(
            self as *const crate::QSeamlessCubemap as *mut crate::QSeamlessCubemap,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::PropertyReaderInterface {
    /// <p>Destroys the instance of PropertyReaderInterface. The destructor is virtual.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::PropertyReaderInterface::~PropertyReaderInterface()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-propertyreaderinterface.html#dtor.PropertyReaderInterface">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of PropertyReaderInterface. The destructor is virtual.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_PropertyReaderInterface_dPropertyReaderInterface(self as *const crate::PropertyReaderInterface as *mut crate::PropertyReaderInterface)
    }
}

impl ::cpp_core::CppDeletable for crate::QShaderData {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QShaderData::~QShaderData()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderData_dQShaderData(
            self as *const crate::QShaderData as *mut crate::QShaderData,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QSortPolicy {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QSortPolicy::~QSortPolicy()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSortPolicy_dQSortPolicy(
            self as *const crate::QSortPolicy as *mut crate::QSortPolicy,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QSpotLight {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QSpotLight::~QSpotLight()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSpotLight_dQSpotLight(
            self as *const crate::QSpotLight as *mut crate::QSpotLight,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QStencilMask {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QStencilMask::~QStencilMask()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilMask_dQStencilMask(
            self as *const crate::QStencilMask as *mut crate::QStencilMask,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QStencilOperation {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QStencilOperation::~QStencilOperation()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperation_dQStencilOperation(
            self as *const crate::QStencilOperation as *mut crate::QStencilOperation,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QStencilOperationArguments {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QStencilOperationArguments::~QStencilOperationArguments()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilOperationArguments_dQStencilOperationArguments(self as *const crate::QStencilOperationArguments as *mut crate::QStencilOperationArguments)
    }
}

impl ::cpp_core::CppDeletable for crate::QStencilTest {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QStencilTest::~QStencilTest()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTest_dQStencilTest(
            self as *const crate::QStencilTest as *mut crate::QStencilTest,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QStencilTestArguments {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QStencilTestArguments::~QStencilTestArguments()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QStencilTestArguments_dQStencilTestArguments(
            self as *const crate::QStencilTestArguments as *mut crate::QStencilTestArguments,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTechnique {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTechnique::~QTechnique()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechnique_dQTechnique(
            self as *const crate::QTechnique as *mut crate::QTechnique,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTechniqueFilter {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTechniqueFilter::~QTechniqueFilter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTechniqueFilter_dQTechniqueFilter(
            self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureWrapMode {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureWrapMode::~QTextureWrapMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureWrapMode_dQTextureWrapMode(
            self as *const crate::QTextureWrapMode as *mut crate::QTextureWrapMode,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureImage {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureImage::~QTextureImage()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureImage_dQTextureImage(
            self as *const crate::QTextureImage as *mut crate::QTextureImage,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTexture1D {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTexture1D::~QTexture1D()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1D_dQTexture1D(
            self as *const crate::QTexture1D as *mut crate::QTexture1D,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTexture1DArray {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTexture1DArray::~QTexture1DArray()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture1DArray_dQTexture1DArray(
            self as *const crate::QTexture1DArray as *mut crate::QTexture1DArray,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTexture2D {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTexture2D::~QTexture2D()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2D_dQTexture2D(
            self as *const crate::QTexture2D as *mut crate::QTexture2D,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTexture2DArray {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTexture2DArray::~QTexture2DArray()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DArray_dQTexture2DArray(
            self as *const crate::QTexture2DArray as *mut crate::QTexture2DArray,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTexture3D {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTexture3D::~QTexture3D()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture3D_dQTexture3D(
            self as *const crate::QTexture3D as *mut crate::QTexture3D,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureCubeMap {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureCubeMap::~QTextureCubeMap()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMap_dQTextureCubeMap(
            self as *const crate::QTextureCubeMap as *mut crate::QTextureCubeMap,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureCubeMapArray {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureCubeMapArray::~QTextureCubeMapArray()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureCubeMapArray_dQTextureCubeMapArray(
            self as *const crate::QTextureCubeMapArray as *mut crate::QTextureCubeMapArray,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTexture2DMultisample {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTexture2DMultisample::~QTexture2DMultisample()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisample_dQTexture2DMultisample(
            self as *const crate::QTexture2DMultisample as *mut crate::QTexture2DMultisample,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTexture2DMultisampleArray {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTexture2DMultisampleArray::~QTexture2DMultisampleArray()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTexture2DMultisampleArray_dQTexture2DMultisampleArray(self as *const crate::QTexture2DMultisampleArray as *mut crate::QTexture2DMultisampleArray)
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureRectangle {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureRectangle::~QTextureRectangle()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureRectangle_dQTextureRectangle(
            self as *const crate::QTextureRectangle as *mut crate::QTextureRectangle,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureBuffer {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureBuffer::~QTextureBuffer()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureBuffer_dQTextureBuffer(
            self as *const crate::QTextureBuffer as *mut crate::QTextureBuffer,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureLoader {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureLoader::~QTextureLoader()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureLoader_dQTextureLoader(
            self as *const crate::QTextureLoader as *mut crate::QTextureLoader,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureData {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void Qt3DRender::QTextureData::~QTextureData()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureData_dQTextureData(
            self as *const crate::QTextureData as *mut crate::QTextureData,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QTextureGenerator {
    /// <p>Destroys the instance of QTextureGenerator. The destructor is virtual.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QTextureGenerator::~QTextureGenerator()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturegenerator.html#dtor.QTextureGenerator">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QTextureGenerator. The destructor is virtual.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureGenerator_dQTextureGenerator(
            self as *const crate::QTextureGenerator as *mut crate::QTextureGenerator,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextureGenerator>> for crate::QTextureGenerator {
    /// <p>Compare these texture data to <i>other</i>. Returns <code>true</code> if both are equal.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```pure virtual bool Qt3DRender::QTextureGenerator::operator==(const Qt3DRender::QTextureGenerator& other) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qtexturegenerator.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Compare these texture data to <i>other</i>. Returns <code>true</code> if both are equal.</p></div>
    #[inline(always)]
    fn eq(&self, other: &::cpp_core::Ref<crate::QTextureGenerator>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureGenerator_operator__1(
                self as *const crate::QTextureGenerator,
                other.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::CppDeletable for crate::QViewport {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QViewport::~QViewport()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QViewport_dQViewport(
            self as *const crate::QViewport as *mut crate::QViewport,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderCaptureReply {
    /// <p>Receives the result of render capture request.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void Qt3DRender::QRenderCaptureReply::~QRenderCaptureReply()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapturereply.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Receives the result of render capture request.</p>
    /// <p>An object, which receives the image from <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html#requestCapture">QRenderCapture::requestCapture</a>.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCaptureReply_dQRenderCaptureReply(
            self as *const crate::QRenderCaptureReply as *mut crate::QRenderCaptureReply,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QRenderCapture {
    /// <p>Frame graph node for render capture</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void Qt3DRender::QRenderCapture::~QRenderCapture()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Frame graph node for render capture</p>
    /// <p>The <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">QRenderCapture</a> is used to capture rendering into an image at any render stage. Capturing must be initiated by the user and one image is returned per capture request. User can issue multiple render capture requests simultaniously, but only one request is served per <a href="http://doc.qt.io/qt-5/qt3drender-qrendercapture.html">QRenderCapture</a> instance per frame.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRenderCapture_dQRenderCapture(
            self as *const crate::QRenderCapture as *mut crate::QRenderCapture,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQAbstractTextureImage {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QAbstractTextureImage*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_dQVector(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQParameter {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QParameter*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_dQVector(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQTechnique {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QTechnique*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_dQVector(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQAttribute {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QAttribute*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_dQVector(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQLayer {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QLayer*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_dQVector(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQFilterKey {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QFilterKey*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_dQVector(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQRenderState {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QRenderState*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_dQVector(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQRenderTargetOutput {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QRenderTargetOutput*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_dQVector(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfAttachmentPoint {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_dQVector(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfSortType {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QSortPolicy::SortType>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_dQVector(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }
}

impl ::cpp_core::CppDeletable for crate::QVectorOfQRenderPass {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QRenderPass*>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_dQVector(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>
    for crate::QVectorOfQAbstractTextureImage
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAbstractTextureImage*>::operator==(const QVector<Qt3DRender::QAbstractTextureImage*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator__(self as *const crate::QVectorOfQAbstractTextureImage, v.as_raw_ptr())
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQParameter>>
    for crate::QVectorOfQParameter
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QParameter*>::operator==(const QVector<Qt3DRender::QParameter*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQParameter>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator__(
                self as *const crate::QVectorOfQParameter,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQTechnique>>
    for crate::QVectorOfQTechnique
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QTechnique*>::operator==(const QVector<Qt3DRender::QTechnique*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQTechnique>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator__(
                self as *const crate::QVectorOfQTechnique,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQAttribute>>
    for crate::QVectorOfQAttribute
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QAttribute*>::operator==(const QVector<Qt3DRender::QAttribute*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQAttribute>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator__(
                self as *const crate::QVectorOfQAttribute,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQLayer>> for crate::QVectorOfQLayer {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QLayer*>::operator==(const QVector<Qt3DRender::QLayer*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQLayer>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator__(
                self as *const crate::QVectorOfQLayer,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQFilterKey>>
    for crate::QVectorOfQFilterKey
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QFilterKey*>::operator==(const QVector<Qt3DRender::QFilterKey*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQFilterKey>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator__(
                self as *const crate::QVectorOfQFilterKey,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQRenderState>>
    for crate::QVectorOfQRenderState
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderState*>::operator==(const QVector<Qt3DRender::QRenderState*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQRenderState>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator__(
                self as *const crate::QVectorOfQRenderState,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>
    for crate::QVectorOfQRenderTargetOutput
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput*>::operator==(const QVector<Qt3DRender::QRenderTargetOutput*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator__(
                self as *const crate::QVectorOfQRenderTargetOutput,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>
    for crate::QVectorOfAttachmentPoint
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator==(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfAttachmentPoint>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator__(self as *const crate::QVectorOfAttachmentPoint, v.as_raw_ptr())
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfSortType>> for crate::QVectorOfSortType {
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QSortPolicy::SortType>::operator==(const QVector<Qt3DRender::QSortPolicy::SortType>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfSortType>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator__(
                self as *const crate::QVectorOfSortType,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QVectorOfQRenderPass>>
    for crate::QVectorOfQRenderPass
{
    /// <p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool QVector<Qt3DRender::QRenderPass*>::operator==(const QVector<Qt3DRender::QRenderPass*>& v) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-eq-eq">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if <i>other</i> is equal to this vector; otherwise returns <code>false</code>.</p>
    /// <p>Two vectors are considered equal if they contain the same values in the same order.</p>
    /// <p>This function requires the value type to have an implementation of <code>operator==()</code>.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-not-eq">operator!=</a>().</p></div>
    #[inline(always)]
    fn eq(&self, v: &::cpp_core::Ref<crate::QVectorOfQRenderPass>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator__(
                self as *const crate::QVectorOfQRenderPass,
                v.as_raw_ptr(),
            )
        }
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQAbstractTextureImage {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAbstractTextureImage*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_size(
                self as *const crate::QVectorOfQAbstractTextureImage,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQParameter {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QParameter*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_size(
                self as *const crate::QVectorOfQParameter,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQTechnique {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QTechnique*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_size(
                self as *const crate::QVectorOfQTechnique,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQAttribute {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QAttribute*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_size(
                self as *const crate::QVectorOfQAttribute,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQLayer {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QLayer*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_size(
                self as *const crate::QVectorOfQLayer,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQFilterKey {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QFilterKey*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_size(
                self as *const crate::QVectorOfQFilterKey,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQRenderState {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderState*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_size(
                self as *const crate::QVectorOfQRenderState,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQRenderTargetOutput {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_size(
                self as *const crate::QVectorOfQRenderTargetOutput,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfAttachmentPoint {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_size(self as *const crate::QVectorOfAttachmentPoint)
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfSortType {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QSortPolicy::SortType>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_size(
                self as *const crate::QVectorOfSortType,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::Size for crate::QVectorOfQRenderPass {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRenderPass*>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_size(
                self as *const crate::QVectorOfQRenderPass,
            )
        };
        ffi_result as usize
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQAbstractTextureImage {
    type Output = *mut *mut crate::QAbstractTextureImage;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage** QVector<Qt3DRender::QAbstractTextureImage*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_data(
            self as *const crate::QVectorOfQAbstractTextureImage
                as *mut crate::QVectorOfQAbstractTextureImage,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQParameter {
    type Output = *mut *mut crate::QParameter;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter** QVector<Qt3DRender::QParameter*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_data(
            self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQTechnique {
    type Output = *mut *mut crate::QTechnique;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique** QVector<Qt3DRender::QTechnique*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_data(
            self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQAttribute {
    type Output = *mut *mut crate::QAttribute;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute** QVector<Qt3DRender::QAttribute*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_data(
            self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQLayer {
    type Output = *mut *mut crate::QLayer;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer** QVector<Qt3DRender::QLayer*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_data(
            self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQFilterKey {
    type Output = *mut *mut crate::QFilterKey;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey** QVector<Qt3DRender::QFilterKey*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_data(
            self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQRenderState {
    type Output = *mut *mut crate::QRenderState;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState** QVector<Qt3DRender::QRenderState*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_data(
            self as *const crate::QVectorOfQRenderState as *mut crate::QVectorOfQRenderState,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQRenderTargetOutput {
    type Output = *mut *mut crate::QRenderTargetOutput;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput** QVector<Qt3DRender::QRenderTargetOutput*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_data(
            self as *const crate::QVectorOfQRenderTargetOutput
                as *mut crate::QVectorOfQRenderTargetOutput,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfAttachmentPoint {
    type Output = *mut crate::q_render_target_output::AttachmentPoint;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput::AttachmentPoint* QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_data(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint)
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfSortType {
    type Output = *mut crate::q_sort_policy::SortType;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy::SortType* QVector<Qt3DRender::QSortPolicy::SortType>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_data(
            self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType,
        )
    }
}

impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQRenderPass {
    type Output = *mut *mut crate::QRenderPass;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass** QVector<Qt3DRender::QRenderPass*>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> *mut *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_data(
            self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQAbstractTextureImage {
    type Output = *const *mut crate::QAbstractTextureImage;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAbstractTextureImage** QVector<Qt3DRender::QAbstractTextureImage*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QAbstractTextureImage {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_data1(
            self as *const crate::QVectorOfQAbstractTextureImage,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQParameter {
    type Output = *const *mut crate::QParameter;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QParameter** QVector<Qt3DRender::QParameter*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QParameter {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_data1(
            self as *const crate::QVectorOfQParameter,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQTechnique {
    type Output = *const *mut crate::QTechnique;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QTechnique** QVector<Qt3DRender::QTechnique*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QTechnique {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_data1(
            self as *const crate::QVectorOfQTechnique,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQAttribute {
    type Output = *const *mut crate::QAttribute;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QAttribute** QVector<Qt3DRender::QAttribute*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QAttribute {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_data1(
            self as *const crate::QVectorOfQAttribute,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQLayer {
    type Output = *const *mut crate::QLayer;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QLayer** QVector<Qt3DRender::QLayer*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QLayer {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_data1(
            self as *const crate::QVectorOfQLayer,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQFilterKey {
    type Output = *const *mut crate::QFilterKey;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QFilterKey** QVector<Qt3DRender::QFilterKey*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QFilterKey {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_data1(
            self as *const crate::QVectorOfQFilterKey,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQRenderState {
    type Output = *const *mut crate::QRenderState;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderState** QVector<Qt3DRender::QRenderState*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QRenderState {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_data1(
            self as *const crate::QVectorOfQRenderState,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQRenderTargetOutput {
    type Output = *const *mut crate::QRenderTargetOutput;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput** QVector<Qt3DRender::QRenderTargetOutput*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QRenderTargetOutput {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_data1(
            self as *const crate::QVectorOfQRenderTargetOutput,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfAttachmentPoint {
    type Output = *const crate::q_render_target_output::AttachmentPoint;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderTargetOutput::AttachmentPoint* QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const crate::q_render_target_output::AttachmentPoint {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_data1(self as *const crate::QVectorOfAttachmentPoint)
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfSortType {
    type Output = *const crate::q_sort_policy::SortType;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QSortPolicy::SortType* QVector<Qt3DRender::QSortPolicy::SortType>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const crate::q_sort_policy::SortType {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_data1(
            self as *const crate::QVectorOfSortType,
        )
    }
}

impl ::cpp_core::vector_ops::Data for crate::QVectorOfQRenderPass {
    type Output = *const *mut crate::QRenderPass;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRenderPass** QVector<Qt3DRender::QRenderPass*>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> *const *mut crate::QRenderPass {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_data1(
            self as *const crate::QVectorOfQRenderPass,
        )
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>
    for &crate::QVectorOfQAbstractTextureImage
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*> QVector<Qt3DRender::QAbstractTextureImage*>::operator+(const QVector<Qt3DRender::QAbstractTextureImage*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator_2(self as *const crate::QVectorOfQAbstractTextureImage, l.as_raw_ptr())
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQParameter>> for &crate::QVectorOfQParameter {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQParameter>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*> QVector<Qt3DRender::QParameter*>::operator+(const QVector<Qt3DRender::QParameter*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQParameter>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQParameter> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator_2(
                    self as *const crate::QVectorOfQParameter,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQTechnique>> for &crate::QVectorOfQTechnique {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQTechnique>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*> QVector<Qt3DRender::QTechnique*>::operator+(const QVector<Qt3DRender::QTechnique*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQTechnique>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQTechnique> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator_2(
                    self as *const crate::QVectorOfQTechnique,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQAttribute>> for &crate::QVectorOfQAttribute {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQAttribute>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*> QVector<Qt3DRender::QAttribute*>::operator+(const QVector<Qt3DRender::QAttribute*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQAttribute>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQAttribute> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator_2(
                    self as *const crate::QVectorOfQAttribute,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQLayer>> for &crate::QVectorOfQLayer {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQLayer>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*> QVector<Qt3DRender::QLayer*>::operator+(const QVector<Qt3DRender::QLayer*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQLayer>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQLayer> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator_2(
                    self as *const crate::QVectorOfQLayer,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQFilterKey>> for &crate::QVectorOfQFilterKey {
    type Output = ::cpp_core::CppBox<crate::QVectorOfQFilterKey>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*> QVector<Qt3DRender::QFilterKey*>::operator+(const QVector<Qt3DRender::QFilterKey*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQFilterKey>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator_2(
                    self as *const crate::QVectorOfQFilterKey,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQRenderState>>
    for &crate::QVectorOfQRenderState
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQRenderState>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*> QVector<Qt3DRender::QRenderState*>::operator+(const QVector<Qt3DRender::QRenderState*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRenderState>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderState> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator_2(
                    self as *const crate::QVectorOfQRenderState,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>
    for &crate::QVectorOfQRenderTargetOutput
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*> QVector<Qt3DRender::QRenderTargetOutput*>::operator+(const QVector<Qt3DRender::QRenderTargetOutput*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator_2(self as *const crate::QVectorOfQRenderTargetOutput, l.as_raw_ptr())
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>
    for &crate::QVectorOfAttachmentPoint
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint> QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator+(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfAttachmentPoint>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator_2(self as *const crate::QVectorOfAttachmentPoint, l.as_raw_ptr())
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfSortType>> for &crate::QVectorOfSortType {
    type Output = ::cpp_core::CppBox<crate::QVectorOfSortType>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType> QVector<Qt3DRender::QSortPolicy::SortType>::operator+(const QVector<Qt3DRender::QSortPolicy::SortType>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfSortType>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfSortType> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator_2(self as *const crate::QVectorOfSortType, l.as_raw_ptr())
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQRenderPass>>
    for &crate::QVectorOfQRenderPass
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQRenderPass>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*> QVector<Qt3DRender::QRenderPass*>::operator+(const QVector<Qt3DRender::QRenderPass*>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRenderPass>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator_2(
                    self as *const crate::QVectorOfQRenderPass,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

impl ::std::ops::Shl<*const *mut crate::QAbstractTextureImage>
    for &crate::QVectorOfQAbstractTextureImage
{
    type Output = ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>& QVector<Qt3DRender::QAbstractTextureImage*>::operator<<(const Qt3DRender::QAbstractTextureImage*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: *const *mut crate::QAbstractTextureImage,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator__6(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage, t)
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QParameter> for &crate::QVectorOfQParameter {
    type Output = ::cpp_core::Ref<crate::QVectorOfQParameter>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>& QVector<Qt3DRender::QParameter*>::operator<<(const Qt3DRender::QParameter*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(self, t: *const *mut crate::QParameter) -> ::cpp_core::Ref<crate::QVectorOfQParameter> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator__6(
                    self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                    t,
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QTechnique> for &crate::QVectorOfQTechnique {
    type Output = ::cpp_core::Ref<crate::QVectorOfQTechnique>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>& QVector<Qt3DRender::QTechnique*>::operator<<(const Qt3DRender::QTechnique*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(self, t: *const *mut crate::QTechnique) -> ::cpp_core::Ref<crate::QVectorOfQTechnique> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator__6(
                    self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                    t,
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QAttribute> for &crate::QVectorOfQAttribute {
    type Output = ::cpp_core::Ref<crate::QVectorOfQAttribute>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>& QVector<Qt3DRender::QAttribute*>::operator<<(const Qt3DRender::QAttribute*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(self, t: *const *mut crate::QAttribute) -> ::cpp_core::Ref<crate::QVectorOfQAttribute> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator__6(
                    self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                    t,
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QLayer> for &crate::QVectorOfQLayer {
    type Output = ::cpp_core::Ref<crate::QVectorOfQLayer>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>& QVector<Qt3DRender::QLayer*>::operator<<(const Qt3DRender::QLayer*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(self, t: *const *mut crate::QLayer) -> ::cpp_core::Ref<crate::QVectorOfQLayer> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator__6(
                    self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                    t,
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QFilterKey> for &crate::QVectorOfQFilterKey {
    type Output = ::cpp_core::Ref<crate::QVectorOfQFilterKey>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>& QVector<Qt3DRender::QFilterKey*>::operator<<(const Qt3DRender::QFilterKey*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(self, t: *const *mut crate::QFilterKey) -> ::cpp_core::Ref<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator__6(
                    self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                    t,
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QRenderState> for &crate::QVectorOfQRenderState {
    type Output = ::cpp_core::Ref<crate::QVectorOfQRenderState>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>& QVector<Qt3DRender::QRenderState*>::operator<<(const Qt3DRender::QRenderState*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: *const *mut crate::QRenderState,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderState> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator__6(
                    self as *const crate::QVectorOfQRenderState
                        as *mut crate::QVectorOfQRenderState,
                    t,
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QRenderTargetOutput>
    for &crate::QVectorOfQRenderTargetOutput
{
    type Output = ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>& QVector<Qt3DRender::QRenderTargetOutput*>::operator<<(const Qt3DRender::QRenderTargetOutput*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: *const *mut crate::QRenderTargetOutput,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator__6(self as *const crate::QVectorOfQRenderTargetOutput as *mut crate::QVectorOfQRenderTargetOutput, t)
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const crate::q_render_target_output::AttachmentPoint>
    for &crate::QVectorOfAttachmentPoint
{
    type Output = ::cpp_core::Ref<crate::QVectorOfAttachmentPoint>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator<<(const Qt3DRender::QRenderTargetOutput::AttachmentPoint& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: *const crate::q_render_target_output::AttachmentPoint,
    ) -> ::cpp_core::Ref<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator__6(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, t)
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const crate::q_sort_policy::SortType> for &crate::QVectorOfSortType {
    type Output = ::cpp_core::Ref<crate::QVectorOfSortType>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>& QVector<Qt3DRender::QSortPolicy::SortType>::operator<<(const Qt3DRender::QSortPolicy::SortType& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: *const crate::q_sort_policy::SortType,
    ) -> ::cpp_core::Ref<crate::QVectorOfSortType> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator__6(self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType, t)
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<*const *mut crate::QRenderPass> for &crate::QVectorOfQRenderPass {
    type Output = ::cpp_core::Ref<crate::QVectorOfQRenderPass>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>& QVector<Qt3DRender::QRenderPass*>::operator<<(const Qt3DRender::QRenderPass*& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: *const *mut crate::QRenderPass,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator__6(
                    self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                    t,
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>
    for &crate::QVectorOfQAbstractTextureImage
{
    type Output = ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAbstractTextureImage*>& QVector<Qt3DRender::QAbstractTextureImage*>::operator<<(const QVector<Qt3DRender::QAbstractTextureImage*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAbstractTextureImage_ptr_operator__7(self as *const crate::QVectorOfQAbstractTextureImage as *mut crate::QVectorOfQAbstractTextureImage, l.as_raw_ptr())
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQParameter>> for &crate::QVectorOfQParameter {
    type Output = ::cpp_core::Ref<crate::QVectorOfQParameter>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QParameter*>& QVector<Qt3DRender::QParameter*>::operator<<(const QVector<Qt3DRender::QParameter*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQParameter>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQParameter> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QParameter_ptr_operator__7(
                    self as *const crate::QVectorOfQParameter as *mut crate::QVectorOfQParameter,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQTechnique>> for &crate::QVectorOfQTechnique {
    type Output = ::cpp_core::Ref<crate::QVectorOfQTechnique>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QTechnique*>& QVector<Qt3DRender::QTechnique*>::operator<<(const QVector<Qt3DRender::QTechnique*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQTechnique>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQTechnique> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QTechnique_ptr_operator__7(
                    self as *const crate::QVectorOfQTechnique as *mut crate::QVectorOfQTechnique,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQAttribute>> for &crate::QVectorOfQAttribute {
    type Output = ::cpp_core::Ref<crate::QVectorOfQAttribute>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QAttribute*>& QVector<Qt3DRender::QAttribute*>::operator<<(const QVector<Qt3DRender::QAttribute*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQAttribute>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQAttribute> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QAttribute_ptr_operator__7(
                    self as *const crate::QVectorOfQAttribute as *mut crate::QVectorOfQAttribute,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQLayer>> for &crate::QVectorOfQLayer {
    type Output = ::cpp_core::Ref<crate::QVectorOfQLayer>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QLayer*>& QVector<Qt3DRender::QLayer*>::operator<<(const QVector<Qt3DRender::QLayer*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQLayer>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQLayer> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QLayer_ptr_operator__7(
                    self as *const crate::QVectorOfQLayer as *mut crate::QVectorOfQLayer,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQFilterKey>> for &crate::QVectorOfQFilterKey {
    type Output = ::cpp_core::Ref<crate::QVectorOfQFilterKey>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QFilterKey*>& QVector<Qt3DRender::QFilterKey*>::operator<<(const QVector<Qt3DRender::QFilterKey*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQFilterKey>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQFilterKey> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QFilterKey_ptr_operator__7(
                    self as *const crate::QVectorOfQFilterKey as *mut crate::QVectorOfQFilterKey,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQRenderState>>
    for &crate::QVectorOfQRenderState
{
    type Output = ::cpp_core::Ref<crate::QVectorOfQRenderState>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderState*>& QVector<Qt3DRender::QRenderState*>::operator<<(const QVector<Qt3DRender::QRenderState*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRenderState>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderState> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderState_ptr_operator__7(
                    self as *const crate::QVectorOfQRenderState
                        as *mut crate::QVectorOfQRenderState,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>
    for &crate::QVectorOfQRenderTargetOutput
{
    type Output = ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput*>& QVector<Qt3DRender::QRenderTargetOutput*>::operator<<(const QVector<Qt3DRender::QRenderTargetOutput*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_ptr_operator__7(self as *const crate::QVectorOfQRenderTargetOutput as *mut crate::QVectorOfQRenderTargetOutput, l.as_raw_ptr())
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>
    for &crate::QVectorOfAttachmentPoint
{
    type Output = ::cpp_core::Ref<crate::QVectorOfAttachmentPoint>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>::operator<<(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfAttachmentPoint>,
    ) -> ::cpp_core::Ref<crate::QVectorOfAttachmentPoint> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderTargetOutput_AttachmentPoint_operator__7(self as *const crate::QVectorOfAttachmentPoint as *mut crate::QVectorOfAttachmentPoint, l.as_raw_ptr())
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfSortType>> for &crate::QVectorOfSortType {
    type Output = ::cpp_core::Ref<crate::QVectorOfSortType>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QSortPolicy::SortType>& QVector<Qt3DRender::QSortPolicy::SortType>::operator<<(const QVector<Qt3DRender::QSortPolicy::SortType>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfSortType>,
    ) -> ::cpp_core::Ref<crate::QVectorOfSortType> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QSortPolicy_SortType_operator__7(self as *const crate::QVectorOfSortType as *mut crate::QVectorOfSortType, l.as_raw_ptr())
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQRenderPass>>
    for &crate::QVectorOfQRenderPass
{
    type Output = ::cpp_core::Ref<crate::QVectorOfQRenderPass>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRenderPass*>& QVector<Qt3DRender::QRenderPass*>::operator<<(const QVector<Qt3DRender::QRenderPass*>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRenderPass>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRenderPass> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRenderPass_ptr_operator__7(
                    self as *const crate::QVectorOfQRenderPass as *mut crate::QVectorOfQRenderPass,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>
    for crate::QVectorOfQAbstractTextureImage
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QAbstractTextureImage*>& lhs, const QVector<Qt3DRender::QAbstractTextureImage*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_(
            self as *const crate::QVectorOfQAbstractTextureImage,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQParameter>>
    for crate::QVectorOfQParameter
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QParameter*>& lhs, const QVector<Qt3DRender::QParameter*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQParameter>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_1(
            self as *const crate::QVectorOfQParameter,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQTechnique>>
    for crate::QVectorOfQTechnique
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QTechnique*>& lhs, const QVector<Qt3DRender::QTechnique*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQTechnique>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_2(
            self as *const crate::QVectorOfQTechnique,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQAttribute>>
    for crate::QVectorOfQAttribute
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QAttribute*>& lhs, const QVector<Qt3DRender::QAttribute*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAttribute>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_3(
            self as *const crate::QVectorOfQAttribute,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQLayer>> for crate::QVectorOfQLayer {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QLayer*>& lhs, const QVector<Qt3DRender::QLayer*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQLayer>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_4(
            self as *const crate::QVectorOfQLayer,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQFilterKey>>
    for crate::QVectorOfQFilterKey
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QFilterKey*>& lhs, const QVector<Qt3DRender::QFilterKey*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQFilterKey>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_5(
            self as *const crate::QVectorOfQFilterKey,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQRenderState>>
    for crate::QVectorOfQRenderState
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QRenderState*>& lhs, const QVector<Qt3DRender::QRenderState*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderState>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_6(
            self as *const crate::QVectorOfQRenderState,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>
    for crate::QVectorOfQRenderTargetOutput
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QRenderTargetOutput*>& lhs, const QVector<Qt3DRender::QRenderTargetOutput*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_7(
            self as *const crate::QVectorOfQRenderTargetOutput,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>
    for crate::QVectorOfAttachmentPoint
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& lhs, const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfAttachmentPoint>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_8(
            self as *const crate::QVectorOfAttachmentPoint,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfSortType>> for crate::QVectorOfSortType {
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QSortPolicy::SortType>& lhs, const QVector<Qt3DRender::QSortPolicy::SortType>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfSortType>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_9(
            self as *const crate::QVectorOfSortType,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Lt<::cpp_core::Ref<crate::QVectorOfQRenderPass>>
    for crate::QVectorOfQRenderPass
{
    /// Calls C++ function: <span style='color: green;'>```bool operator<(const QVector<Qt3DRender::QRenderPass*>& lhs, const QVector<Qt3DRender::QRenderPass*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn lt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderPass>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_10(
            self as *const crate::QVectorOfQRenderPass,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>
    for crate::QVectorOfQAbstractTextureImage
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QAbstractTextureImage*>& lhs, const QVector<Qt3DRender::QAbstractTextureImage*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_11(
            self as *const crate::QVectorOfQAbstractTextureImage,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQParameter>>
    for crate::QVectorOfQParameter
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QParameter*>& lhs, const QVector<Qt3DRender::QParameter*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQParameter>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_12(
            self as *const crate::QVectorOfQParameter,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQTechnique>>
    for crate::QVectorOfQTechnique
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QTechnique*>& lhs, const QVector<Qt3DRender::QTechnique*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQTechnique>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_13(
            self as *const crate::QVectorOfQTechnique,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQAttribute>>
    for crate::QVectorOfQAttribute
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QAttribute*>& lhs, const QVector<Qt3DRender::QAttribute*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAttribute>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_14(
            self as *const crate::QVectorOfQAttribute,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQLayer>> for crate::QVectorOfQLayer {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QLayer*>& lhs, const QVector<Qt3DRender::QLayer*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQLayer>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_15(
            self as *const crate::QVectorOfQLayer,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQFilterKey>>
    for crate::QVectorOfQFilterKey
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QFilterKey*>& lhs, const QVector<Qt3DRender::QFilterKey*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQFilterKey>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_16(
            self as *const crate::QVectorOfQFilterKey,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQRenderState>>
    for crate::QVectorOfQRenderState
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QRenderState*>& lhs, const QVector<Qt3DRender::QRenderState*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderState>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_17(
            self as *const crate::QVectorOfQRenderState,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>
    for crate::QVectorOfQRenderTargetOutput
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QRenderTargetOutput*>& lhs, const QVector<Qt3DRender::QRenderTargetOutput*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_18(
            self as *const crate::QVectorOfQRenderTargetOutput,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>
    for crate::QVectorOfAttachmentPoint
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& lhs, const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfAttachmentPoint>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_19(
            self as *const crate::QVectorOfAttachmentPoint,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfSortType>> for crate::QVectorOfSortType {
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QSortPolicy::SortType>& lhs, const QVector<Qt3DRender::QSortPolicy::SortType>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfSortType>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_20(
            self as *const crate::QVectorOfSortType,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Gt<::cpp_core::Ref<crate::QVectorOfQRenderPass>>
    for crate::QVectorOfQRenderPass
{
    /// Calls C++ function: <span style='color: green;'>```bool operator>(const QVector<Qt3DRender::QRenderPass*>& lhs, const QVector<Qt3DRender::QRenderPass*>& rhs)```</span>.
    #[inline(always)]
    unsafe fn gt(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderPass>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator_21(
            self as *const crate::QVectorOfQRenderPass,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>
    for crate::QVectorOfQAbstractTextureImage
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QAbstractTextureImage*>& lhs, const QVector<Qt3DRender::QAbstractTextureImage*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__(
            self as *const crate::QVectorOfQAbstractTextureImage,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQParameter>>
    for crate::QVectorOfQParameter
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QParameter*>& lhs, const QVector<Qt3DRender::QParameter*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQParameter>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__1(
            self as *const crate::QVectorOfQParameter,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQTechnique>>
    for crate::QVectorOfQTechnique
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QTechnique*>& lhs, const QVector<Qt3DRender::QTechnique*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQTechnique>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__2(
            self as *const crate::QVectorOfQTechnique,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQAttribute>>
    for crate::QVectorOfQAttribute
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QAttribute*>& lhs, const QVector<Qt3DRender::QAttribute*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAttribute>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__3(
            self as *const crate::QVectorOfQAttribute,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQLayer>> for crate::QVectorOfQLayer {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QLayer*>& lhs, const QVector<Qt3DRender::QLayer*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQLayer>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__4(
            self as *const crate::QVectorOfQLayer,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQFilterKey>>
    for crate::QVectorOfQFilterKey
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QFilterKey*>& lhs, const QVector<Qt3DRender::QFilterKey*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQFilterKey>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__5(
            self as *const crate::QVectorOfQFilterKey,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQRenderState>>
    for crate::QVectorOfQRenderState
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QRenderState*>& lhs, const QVector<Qt3DRender::QRenderState*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderState>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__6(
            self as *const crate::QVectorOfQRenderState,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>
    for crate::QVectorOfQRenderTargetOutput
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QRenderTargetOutput*>& lhs, const QVector<Qt3DRender::QRenderTargetOutput*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__7(
            self as *const crate::QVectorOfQRenderTargetOutput,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>
    for crate::QVectorOfAttachmentPoint
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& lhs, const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfAttachmentPoint>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__8(
            self as *const crate::QVectorOfAttachmentPoint,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfSortType>> for crate::QVectorOfSortType {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QSortPolicy::SortType>& lhs, const QVector<Qt3DRender::QSortPolicy::SortType>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfSortType>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__9(
            self as *const crate::QVectorOfSortType,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Le<::cpp_core::Ref<crate::QVectorOfQRenderPass>>
    for crate::QVectorOfQRenderPass
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator<=(const QVector<Qt3DRender::QRenderPass*>& lhs, const QVector<Qt3DRender::QRenderPass*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-lt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator<=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is less than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn le(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderPass>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__10(
            self as *const crate::QVectorOfQRenderPass,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>
    for crate::QVectorOfQAbstractTextureImage
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QAbstractTextureImage*>& lhs, const QVector<Qt3DRender::QAbstractTextureImage*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__11(
            self as *const crate::QVectorOfQAbstractTextureImage,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQParameter>>
    for crate::QVectorOfQParameter
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QParameter*>& lhs, const QVector<Qt3DRender::QParameter*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQParameter>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__12(
            self as *const crate::QVectorOfQParameter,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQTechnique>>
    for crate::QVectorOfQTechnique
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QTechnique*>& lhs, const QVector<Qt3DRender::QTechnique*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQTechnique>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__13(
            self as *const crate::QVectorOfQTechnique,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQAttribute>>
    for crate::QVectorOfQAttribute
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QAttribute*>& lhs, const QVector<Qt3DRender::QAttribute*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQAttribute>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__14(
            self as *const crate::QVectorOfQAttribute,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQLayer>> for crate::QVectorOfQLayer {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QLayer*>& lhs, const QVector<Qt3DRender::QLayer*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQLayer>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__15(
            self as *const crate::QVectorOfQLayer,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQFilterKey>>
    for crate::QVectorOfQFilterKey
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QFilterKey*>& lhs, const QVector<Qt3DRender::QFilterKey*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQFilterKey>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__16(
            self as *const crate::QVectorOfQFilterKey,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQRenderState>>
    for crate::QVectorOfQRenderState
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QRenderState*>& lhs, const QVector<Qt3DRender::QRenderState*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderState>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__17(
            self as *const crate::QVectorOfQRenderState,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>
    for crate::QVectorOfQRenderTargetOutput
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QRenderTargetOutput*>& lhs, const QVector<Qt3DRender::QRenderTargetOutput*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__18(
            self as *const crate::QVectorOfQRenderTargetOutput,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>
    for crate::QVectorOfAttachmentPoint
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& lhs, const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfAttachmentPoint>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__19(
            self as *const crate::QVectorOfAttachmentPoint,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfSortType>> for crate::QVectorOfSortType {
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QSortPolicy::SortType>& lhs, const QVector<Qt3DRender::QSortPolicy::SortType>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfSortType>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__20(
            self as *const crate::QVectorOfSortType,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::cmp::Ge<::cpp_core::Ref<crate::QVectorOfQRenderPass>>
    for crate::QVectorOfQRenderPass
{
    /// <p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```bool operator>=(const QVector<Qt3DRender::QRenderPass*>& lhs, const QVector<Qt3DRender::QRenderPass*>& rhs)```</span>.
    ///
    /// Warning: no exact match found in C++ documentation. Below is the <a href="http://doc.qt.io/qt-5/qchar.html#operator-gt-eq">C++ documentation</a> for <span style='color: green;'>```bool operator>=(QChar c1, QChar c2)```</span>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns <code>true</code> if the numeric Unicode value of <i>c1</i> is greater than or equal to that of <i>c2</i>; otherwise returns <code>false</code>.</p></div>
    #[inline(always)]
    unsafe fn ge(&self, rhs: &::cpp_core::Ref<crate::QVectorOfQRenderPass>) -> bool {
        crate::__ffi::ctr_qt_3d_render_ffi_operator__21(
            self as *const crate::QVectorOfQRenderPass,
            rhs.as_raw_ptr(),
        )
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAbstractLight {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr(
                    self as *const crate::QAbstractLight as *mut crate::QAbstractLight,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* dynamic_cast<Qt3DRender::QAbstractLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractLight_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* dynamic_cast<Qt3DRender::QAbstractLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* dynamic_cast<Qt3DRender::QAbstractLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractTexture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr1(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAbstractTexture {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr1(
                    self as *const crate::QAbstractTexture as *mut crate::QAbstractTexture,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractTexture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* dynamic_cast<Qt3DRender::QAbstractTexture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractTexture_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr1(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* dynamic_cast<Qt3DRender::QAbstractTexture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractTexture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureImageDataGenerator> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImageDataGenerator* static_cast<Qt3DRender::QTextureImageDataGenerator*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QTextureImageDataGenerator> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureImageDataGenerator_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractFunctor,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractFunctor> for crate::QTextureImageDataGenerator {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QTextureImageDataGenerator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureImageDataGenerator>,
    ) -> ::cpp_core::Ptr<crate::QAbstractFunctor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr(
                ptr.as_raw_ptr() as *mut crate::QTextureImageDataGenerator,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureImageDataGenerator {
    type Target = crate::QAbstractFunctor;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QTextureImageDataGenerator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractFunctor {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr(
                    self as *const crate::QTextureImageDataGenerator
                        as *mut crate::QTextureImageDataGenerator,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureImageDataGenerator> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImageDataGenerator* dynamic_cast<Qt3DRender::QTextureImageDataGenerator*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QTextureImageDataGenerator> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureImageDataGenerator_ptr(ptr.as_raw_ptr() as *mut crate::QAbstractFunctor)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractTextureImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* static_cast<Qt3DRender::QAbstractTextureImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTextureImage_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QAbstractTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAbstractTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTextureImage>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr2(
                ptr.as_raw_ptr() as *mut crate::QAbstractTextureImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAbstractTextureImage {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAbstractTextureImage* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr2(
                    self as *const crate::QAbstractTextureImage
                        as *mut crate::QAbstractTextureImage,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractTextureImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* dynamic_cast<Qt3DRender::QAbstractTextureImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractTextureImage_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAbstractTextureImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* static_cast<Qt3DRender::QAbstractTextureImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTextureImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAbstractTextureImage {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QAbstractTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTextureImage>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr2(
                ptr.as_raw_ptr() as *mut crate::QAbstractTextureImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAbstractTextureImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* dynamic_cast<Qt3DRender::QAbstractTextureImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractTextureImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderState> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr3(
                ptr.as_raw_ptr() as *mut crate::QRenderState
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderState {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr3(
                    self as *const crate::QRenderState as *mut crate::QRenderState,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderState> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* dynamic_cast<Qt3DRender::QRenderState*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderState_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr3(
                ptr.as_raw_ptr() as *mut crate::QRenderState
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderState> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* dynamic_cast<Qt3DRender::QRenderState*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderState_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAlphaCoverage> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaCoverage* static_cast<Qt3DRender::QAlphaCoverage*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QAlphaCoverage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAlphaCoverage_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QAlphaCoverage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QAlphaCoverage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAlphaCoverage>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr2(
                ptr.as_raw_ptr() as *mut crate::QAlphaCoverage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAlphaCoverage {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QAlphaCoverage* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr2(
                    self as *const crate::QAlphaCoverage as *mut crate::QAlphaCoverage,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAlphaCoverage> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaCoverage* dynamic_cast<Qt3DRender::QAlphaCoverage*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QAlphaCoverage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAlphaCoverage_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAlphaCoverage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaCoverage* static_cast<Qt3DRender::QAlphaCoverage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAlphaCoverage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAlphaCoverage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QAlphaCoverage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAlphaCoverage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAlphaCoverage>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr4(
                ptr.as_raw_ptr() as *mut crate::QAlphaCoverage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAlphaCoverage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaCoverage* dynamic_cast<Qt3DRender::QAlphaCoverage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAlphaCoverage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAlphaCoverage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAlphaCoverage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaCoverage* static_cast<Qt3DRender::QAlphaCoverage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAlphaCoverage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAlphaCoverage_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAlphaCoverage {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QAlphaCoverage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAlphaCoverage>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr4(
                ptr.as_raw_ptr() as *mut crate::QAlphaCoverage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAlphaCoverage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaCoverage* dynamic_cast<Qt3DRender::QAlphaCoverage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAlphaCoverage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAlphaCoverage_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAlphaTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaTest* static_cast<Qt3DRender::QAlphaTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QAlphaTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAlphaTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QAlphaTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QAlphaTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAlphaTest>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr3(
                ptr.as_raw_ptr() as *mut crate::QAlphaTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAlphaTest {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QAlphaTest* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr3(
                    self as *const crate::QAlphaTest as *mut crate::QAlphaTest,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAlphaTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaTest* dynamic_cast<Qt3DRender::QAlphaTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QAlphaTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAlphaTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAlphaTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaTest* static_cast<Qt3DRender::QAlphaTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAlphaTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAlphaTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QAlphaTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAlphaTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAlphaTest>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr5(
                ptr.as_raw_ptr() as *mut crate::QAlphaTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAlphaTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaTest* dynamic_cast<Qt3DRender::QAlphaTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAlphaTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAlphaTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAlphaTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaTest* static_cast<Qt3DRender::QAlphaTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAlphaTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAlphaTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAlphaTest {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QAlphaTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAlphaTest>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr5(
                ptr.as_raw_ptr() as *mut crate::QAlphaTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAlphaTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAlphaTest* dynamic_cast<Qt3DRender::QAlphaTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAlphaTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAlphaTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAttribute> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* static_cast<Qt3DRender::QAttribute*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAttribute_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QAttribute {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAttribute* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAttribute>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr6(
                ptr.as_raw_ptr() as *mut crate::QAttribute
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QAttribute {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAttribute* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr6(
                    self as *const crate::QAttribute as *mut crate::QAttribute,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QAttribute> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* dynamic_cast<Qt3DRender::QAttribute*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAttribute_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QAttribute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* static_cast<Qt3DRender::QAttribute*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAttribute_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAttribute {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QAttribute* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAttribute>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr6(
                ptr.as_raw_ptr() as *mut crate::QAttribute
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QAttribute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAttribute* dynamic_cast<Qt3DRender::QAttribute*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAttribute_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBlendEquation> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquation* static_cast<Qt3DRender::QBlendEquation*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlendEquation_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QBlendEquation {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QBlendEquation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlendEquation>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr4(
                ptr.as_raw_ptr() as *mut crate::QBlendEquation,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QBlendEquation {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QBlendEquation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr4(
                    self as *const crate::QBlendEquation as *mut crate::QBlendEquation,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QBlendEquation> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquation* dynamic_cast<Qt3DRender::QBlendEquation*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlendEquation_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBlendEquation> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquation* static_cast<Qt3DRender::QBlendEquation*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlendEquation_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QBlendEquation {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QBlendEquation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlendEquation>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr7(
                ptr.as_raw_ptr() as *mut crate::QBlendEquation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBlendEquation> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquation* dynamic_cast<Qt3DRender::QBlendEquation*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlendEquation_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBlendEquation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquation* static_cast<Qt3DRender::QBlendEquation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlendEquation_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QBlendEquation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QBlendEquation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlendEquation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr7(
                ptr.as_raw_ptr() as *mut crate::QBlendEquation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBlendEquation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquation* dynamic_cast<Qt3DRender::QBlendEquation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlendEquation_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBlendEquationArguments> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments* static_cast<Qt3DRender::QBlendEquationArguments*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlendEquationArguments_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QBlendEquationArguments {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QBlendEquationArguments* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlendEquationArguments>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr5(
                ptr.as_raw_ptr() as *mut crate::QBlendEquationArguments,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QBlendEquationArguments {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QBlendEquationArguments* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr5(
                    self as *const crate::QBlendEquationArguments
                        as *mut crate::QBlendEquationArguments,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QBlendEquationArguments> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments* dynamic_cast<Qt3DRender::QBlendEquationArguments*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlendEquationArguments_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBlendEquationArguments> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments* static_cast<Qt3DRender::QBlendEquationArguments*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlendEquationArguments_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QBlendEquationArguments {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QBlendEquationArguments* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlendEquationArguments>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr8(
                ptr.as_raw_ptr() as *mut crate::QBlendEquationArguments
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBlendEquationArguments> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments* dynamic_cast<Qt3DRender::QBlendEquationArguments*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlendEquationArguments_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBlendEquationArguments> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments* static_cast<Qt3DRender::QBlendEquationArguments*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlendEquationArguments_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QBlendEquationArguments {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QBlendEquationArguments* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlendEquationArguments>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr8(
                ptr.as_raw_ptr() as *mut crate::QBlendEquationArguments
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBlendEquationArguments> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlendEquationArguments* dynamic_cast<Qt3DRender::QBlendEquationArguments*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBlendEquationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlendEquationArguments_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBuffer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer* static_cast<Qt3DRender::QBuffer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBuffer_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QBuffer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QBuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBuffer>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr9(
                ptr.as_raw_ptr() as *mut crate::QBuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QBuffer {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QBuffer* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr9(
                    self as *const crate::QBuffer as *mut crate::QBuffer,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QBuffer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer* dynamic_cast<Qt3DRender::QBuffer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBuffer_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer* static_cast<Qt3DRender::QBuffer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBuffer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QBuffer {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QBuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBuffer>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr9(
                ptr.as_raw_ptr() as *mut crate::QBuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBuffer* dynamic_cast<Qt3DRender::QBuffer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBuffer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrameGraphNode> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr10(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QFrameGraphNode {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr10(
                    self as *const crate::QFrameGraphNode as *mut crate::QFrameGraphNode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QFrameGraphNode> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* dynamic_cast<Qt3DRender::QFrameGraphNode*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrameGraphNode_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrameGraphNode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr10(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QFrameGraphNode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* dynamic_cast<Qt3DRender::QFrameGraphNode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrameGraphNode_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBufferCapture> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferCapture* static_cast<Qt3DRender::QBufferCapture*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QBufferCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBufferCapture_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QBufferCapture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QBufferCapture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBufferCapture>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr2(
                ptr.as_raw_ptr() as *mut crate::QBufferCapture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QBufferCapture {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QBufferCapture* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr2(
                    self as *const crate::QBufferCapture as *mut crate::QBufferCapture,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QBufferCapture> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferCapture* dynamic_cast<Qt3DRender::QBufferCapture*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QBufferCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBufferCapture_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBufferCapture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferCapture* static_cast<Qt3DRender::QBufferCapture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBufferCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBufferCapture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QBufferCapture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QBufferCapture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBufferCapture>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr11(
                ptr.as_raw_ptr() as *mut crate::QBufferCapture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBufferCapture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferCapture* dynamic_cast<Qt3DRender::QBufferCapture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBufferCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBufferCapture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBufferCapture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferCapture* static_cast<Qt3DRender::QBufferCapture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBufferCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBufferCapture_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QBufferCapture {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QBufferCapture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBufferCapture>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr11(
                ptr.as_raw_ptr() as *mut crate::QBufferCapture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QBufferCapture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferCapture* dynamic_cast<Qt3DRender::QBufferCapture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBufferCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBufferCapture_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QBufferDataGenerator> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferDataGenerator* static_cast<Qt3DRender::QBufferDataGenerator*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QBufferDataGenerator> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBufferDataGenerator_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractFunctor,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractFunctor> for crate::QBufferDataGenerator {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QBufferDataGenerator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBufferDataGenerator>,
    ) -> ::cpp_core::Ptr<crate::QAbstractFunctor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr1(
                ptr.as_raw_ptr() as *mut crate::QBufferDataGenerator,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QBufferDataGenerator {
    type Target = crate::QAbstractFunctor;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QBufferDataGenerator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractFunctor {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr1(
                    self as *const crate::QBufferDataGenerator as *mut crate::QBufferDataGenerator,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QBufferDataGenerator> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBufferDataGenerator* dynamic_cast<Qt3DRender::QBufferDataGenerator*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QBufferDataGenerator> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBufferDataGenerator_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractFunctor,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCameraLens> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens* static_cast<Qt3DRender::QCameraLens*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCameraLens_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QCameraLens {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QCameraLens* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCameraLens>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr1(
                ptr.as_raw_ptr() as *mut crate::QCameraLens,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QCameraLens {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QCameraLens* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr1(
                    self as *const crate::QCameraLens as *mut crate::QCameraLens,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QCameraLens> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens* dynamic_cast<Qt3DRender::QCameraLens*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCameraLens_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCameraLens> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens* static_cast<Qt3DRender::QCameraLens*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCameraLens_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QCameraLens {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QCameraLens* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCameraLens>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr12(
                ptr.as_raw_ptr() as *mut crate::QCameraLens
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCameraLens> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens* dynamic_cast<Qt3DRender::QCameraLens*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCameraLens_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCameraLens> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens* static_cast<Qt3DRender::QCameraLens*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCameraLens_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QCameraLens {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QCameraLens* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCameraLens>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr12(
                ptr.as_raw_ptr() as *mut crate::QCameraLens
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCameraLens> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraLens* dynamic_cast<Qt3DRender::QCameraLens*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCameraLens> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCameraLens_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCamera> for ::qt_3d_core::QEntity {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCamera* static_cast<Qt3DRender::QCamera*>(Qt3DCore::QEntity* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QEntity>,
    ) -> ::cpp_core::Ptr<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCamera_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QEntity
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QEntity> for crate::QCamera {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QEntity* static_cast<Qt3DCore::QEntity*>(Qt3DRender::QCamera* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCamera>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QEntity> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QEntity_ptr(
                ptr.as_raw_ptr() as *mut crate::QCamera
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QCamera {
    type Target = ::qt_3d_core::QEntity;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QEntity* static_cast<Qt3DCore::QEntity*>(Qt3DRender::QCamera* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QEntity {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QEntity_ptr(
                    self as *const crate::QCamera as *mut crate::QCamera,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QCamera> for ::qt_3d_core::QEntity {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCamera* dynamic_cast<Qt3DRender::QCamera*>(Qt3DCore::QEntity* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QEntity>,
    ) -> ::cpp_core::Ptr<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCamera_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QEntity
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCamera> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCamera* static_cast<Qt3DRender::QCamera*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCamera_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QCamera {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QCamera* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCamera>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr13(
                ptr.as_raw_ptr() as *mut crate::QCamera
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCamera> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCamera* dynamic_cast<Qt3DRender::QCamera*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCamera_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCamera> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCamera* static_cast<Qt3DRender::QCamera*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCamera_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QCamera {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QCamera* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCamera>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr13(
                ptr.as_raw_ptr() as *mut crate::QCamera
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCamera> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCamera* dynamic_cast<Qt3DRender::QCamera*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCamera_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCameraSelector> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraSelector* static_cast<Qt3DRender::QCameraSelector*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QCameraSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCameraSelector_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QCameraSelector {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QCameraSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCameraSelector>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr3(
                ptr.as_raw_ptr() as *mut crate::QCameraSelector,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QCameraSelector {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QCameraSelector* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr3(
                    self as *const crate::QCameraSelector as *mut crate::QCameraSelector,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QCameraSelector> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraSelector* dynamic_cast<Qt3DRender::QCameraSelector*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QCameraSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCameraSelector_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCameraSelector> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraSelector* static_cast<Qt3DRender::QCameraSelector*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCameraSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCameraSelector_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QCameraSelector {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QCameraSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCameraSelector>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr14(
                ptr.as_raw_ptr() as *mut crate::QCameraSelector
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCameraSelector> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraSelector* dynamic_cast<Qt3DRender::QCameraSelector*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCameraSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCameraSelector_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCameraSelector> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraSelector* static_cast<Qt3DRender::QCameraSelector*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCameraSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCameraSelector_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QCameraSelector {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QCameraSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCameraSelector>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr14(
                ptr.as_raw_ptr() as *mut crate::QCameraSelector
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCameraSelector> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCameraSelector* dynamic_cast<Qt3DRender::QCameraSelector*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCameraSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCameraSelector_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTargetOutput> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* static_cast<Qt3DRender::QRenderTargetOutput*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTargetOutput_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderTargetOutput {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderTargetOutput* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTargetOutput>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr15(
                ptr.as_raw_ptr() as *mut crate::QRenderTargetOutput
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderTargetOutput {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderTargetOutput* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr15(
                    self as *const crate::QRenderTargetOutput as *mut crate::QRenderTargetOutput,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTargetOutput> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* dynamic_cast<Qt3DRender::QRenderTargetOutput*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTargetOutput_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTargetOutput> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* static_cast<Qt3DRender::QRenderTargetOutput*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTargetOutput_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderTargetOutput {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderTargetOutput* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTargetOutput>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr15(
                ptr.as_raw_ptr() as *mut crate::QRenderTargetOutput
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTargetOutput> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetOutput* dynamic_cast<Qt3DRender::QRenderTargetOutput*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTargetOutput_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QClearBuffers> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClearBuffers* static_cast<Qt3DRender::QClearBuffers*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QClearBuffers> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QClearBuffers_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QClearBuffers {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QClearBuffers* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QClearBuffers>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr4(
                ptr.as_raw_ptr() as *mut crate::QClearBuffers,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QClearBuffers {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QClearBuffers* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr4(
                    self as *const crate::QClearBuffers as *mut crate::QClearBuffers,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QClearBuffers> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClearBuffers* dynamic_cast<Qt3DRender::QClearBuffers*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QClearBuffers> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QClearBuffers_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QClearBuffers> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClearBuffers* static_cast<Qt3DRender::QClearBuffers*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QClearBuffers> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QClearBuffers_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QClearBuffers {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QClearBuffers* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QClearBuffers>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr16(
                ptr.as_raw_ptr() as *mut crate::QClearBuffers
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QClearBuffers> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClearBuffers* dynamic_cast<Qt3DRender::QClearBuffers*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QClearBuffers> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QClearBuffers_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QClearBuffers> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClearBuffers* static_cast<Qt3DRender::QClearBuffers*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QClearBuffers> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QClearBuffers_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QClearBuffers {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QClearBuffers* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QClearBuffers>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr16(
                ptr.as_raw_ptr() as *mut crate::QClearBuffers
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QClearBuffers> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClearBuffers* dynamic_cast<Qt3DRender::QClearBuffers*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QClearBuffers> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QClearBuffers_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QClipPlane> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClipPlane* static_cast<Qt3DRender::QClipPlane*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QClipPlane> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QClipPlane_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QClipPlane {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QClipPlane* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QClipPlane>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr6(
                ptr.as_raw_ptr() as *mut crate::QClipPlane,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QClipPlane {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QClipPlane* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr6(
                    self as *const crate::QClipPlane as *mut crate::QClipPlane,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QClipPlane> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClipPlane* dynamic_cast<Qt3DRender::QClipPlane*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QClipPlane> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QClipPlane_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QClipPlane> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClipPlane* static_cast<Qt3DRender::QClipPlane*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QClipPlane> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QClipPlane_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QClipPlane {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QClipPlane* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QClipPlane>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr17(
                ptr.as_raw_ptr() as *mut crate::QClipPlane
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QClipPlane> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClipPlane* dynamic_cast<Qt3DRender::QClipPlane*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QClipPlane> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QClipPlane_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QClipPlane> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClipPlane* static_cast<Qt3DRender::QClipPlane*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QClipPlane> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QClipPlane_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QClipPlane {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QClipPlane* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QClipPlane>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr17(
                ptr.as_raw_ptr() as *mut crate::QClipPlane
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QClipPlane> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QClipPlane* dynamic_cast<Qt3DRender::QClipPlane*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QClipPlane> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QClipPlane_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QColorMask> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QColorMask* static_cast<Qt3DRender::QColorMask*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QColorMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QColorMask_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QColorMask {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QColorMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QColorMask>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr7(
                ptr.as_raw_ptr() as *mut crate::QColorMask,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QColorMask {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QColorMask* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr7(
                    self as *const crate::QColorMask as *mut crate::QColorMask,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QColorMask> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QColorMask* dynamic_cast<Qt3DRender::QColorMask*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QColorMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QColorMask_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QColorMask> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QColorMask* static_cast<Qt3DRender::QColorMask*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QColorMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QColorMask_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QColorMask {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QColorMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QColorMask>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr18(
                ptr.as_raw_ptr() as *mut crate::QColorMask
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QColorMask> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QColorMask* dynamic_cast<Qt3DRender::QColorMask*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QColorMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QColorMask_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QColorMask> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QColorMask* static_cast<Qt3DRender::QColorMask*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QColorMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QColorMask_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QColorMask {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QColorMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QColorMask>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr18(
                ptr.as_raw_ptr() as *mut crate::QColorMask
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QColorMask> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QColorMask* dynamic_cast<Qt3DRender::QColorMask*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QColorMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QColorMask_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QComputeCommand> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QComputeCommand* static_cast<Qt3DRender::QComputeCommand*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QComputeCommand> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QComputeCommand_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QComputeCommand {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QComputeCommand* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QComputeCommand>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr2(
                ptr.as_raw_ptr() as *mut crate::QComputeCommand,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QComputeCommand {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QComputeCommand* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr2(
                    self as *const crate::QComputeCommand as *mut crate::QComputeCommand,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QComputeCommand> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QComputeCommand* dynamic_cast<Qt3DRender::QComputeCommand*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QComputeCommand> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QComputeCommand_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QComputeCommand> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QComputeCommand* static_cast<Qt3DRender::QComputeCommand*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QComputeCommand> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QComputeCommand_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QComputeCommand {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QComputeCommand* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QComputeCommand>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr19(
                ptr.as_raw_ptr() as *mut crate::QComputeCommand
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QComputeCommand> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QComputeCommand* dynamic_cast<Qt3DRender::QComputeCommand*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QComputeCommand> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QComputeCommand_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QComputeCommand> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QComputeCommand* static_cast<Qt3DRender::QComputeCommand*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QComputeCommand> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QComputeCommand_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QComputeCommand {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QComputeCommand* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QComputeCommand>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr19(
                ptr.as_raw_ptr() as *mut crate::QComputeCommand
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QComputeCommand> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QComputeCommand* dynamic_cast<Qt3DRender::QComputeCommand*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QComputeCommand> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QComputeCommand_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCullFace> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCullFace* static_cast<Qt3DRender::QCullFace*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QCullFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCullFace_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QCullFace {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QCullFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCullFace>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr8(
                ptr.as_raw_ptr() as *mut crate::QCullFace,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QCullFace {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QCullFace* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr8(
                    self as *const crate::QCullFace as *mut crate::QCullFace,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QCullFace> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCullFace* dynamic_cast<Qt3DRender::QCullFace*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QCullFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCullFace_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCullFace> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCullFace* static_cast<Qt3DRender::QCullFace*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCullFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCullFace_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QCullFace {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QCullFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCullFace>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr20(
                ptr.as_raw_ptr() as *mut crate::QCullFace
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCullFace> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCullFace* dynamic_cast<Qt3DRender::QCullFace*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QCullFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCullFace_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QCullFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCullFace* static_cast<Qt3DRender::QCullFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCullFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QCullFace_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QCullFace {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QCullFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QCullFace>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr20(
                ptr.as_raw_ptr() as *mut crate::QCullFace
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QCullFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QCullFace* dynamic_cast<Qt3DRender::QCullFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QCullFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QCullFace_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDepthTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthTest* static_cast<Qt3DRender::QDepthTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QDepthTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDepthTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QDepthTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QDepthTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDepthTest>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr9(
                ptr.as_raw_ptr() as *mut crate::QDepthTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDepthTest {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QDepthTest* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr9(
                    self as *const crate::QDepthTest as *mut crate::QDepthTest,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDepthTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthTest* dynamic_cast<Qt3DRender::QDepthTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QDepthTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDepthTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDepthTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthTest* static_cast<Qt3DRender::QDepthTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDepthTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDepthTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QDepthTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QDepthTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDepthTest>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr21(
                ptr.as_raw_ptr() as *mut crate::QDepthTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDepthTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthTest* dynamic_cast<Qt3DRender::QDepthTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDepthTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDepthTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDepthTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthTest* static_cast<Qt3DRender::QDepthTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDepthTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDepthTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QDepthTest {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QDepthTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDepthTest>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr21(
                ptr.as_raw_ptr() as *mut crate::QDepthTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDepthTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthTest* dynamic_cast<Qt3DRender::QDepthTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDepthTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDepthTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDirectionalLight> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* static_cast<Qt3DRender::QDirectionalLight*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDirectionalLight_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractLight> for crate::QDirectionalLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DRender::QDirectionalLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDirectionalLight>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr3(
                ptr.as_raw_ptr() as *mut crate::QDirectionalLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDirectionalLight {
    type Target = crate::QAbstractLight;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DRender::QDirectionalLight* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractLight {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr3(
                    self as *const crate::QDirectionalLight as *mut crate::QDirectionalLight,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDirectionalLight> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* dynamic_cast<Qt3DRender::QDirectionalLight*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDirectionalLight_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDirectionalLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* static_cast<Qt3DRender::QDirectionalLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDirectionalLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QDirectionalLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QDirectionalLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDirectionalLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr3(
                ptr.as_raw_ptr() as *mut crate::QDirectionalLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDirectionalLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* dynamic_cast<Qt3DRender::QDirectionalLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDirectionalLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDirectionalLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* static_cast<Qt3DRender::QDirectionalLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDirectionalLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QDirectionalLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QDirectionalLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDirectionalLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr22(
                ptr.as_raw_ptr() as *mut crate::QDirectionalLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDirectionalLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* dynamic_cast<Qt3DRender::QDirectionalLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDirectionalLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDirectionalLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* static_cast<Qt3DRender::QDirectionalLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDirectionalLight_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QDirectionalLight {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QDirectionalLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDirectionalLight>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr22(
                ptr.as_raw_ptr() as *mut crate::QDirectionalLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDirectionalLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDirectionalLight* dynamic_cast<Qt3DRender::QDirectionalLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDirectionalLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDirectionalLight_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDispatchCompute> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDispatchCompute* static_cast<Qt3DRender::QDispatchCompute*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QDispatchCompute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDispatchCompute_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QDispatchCompute {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QDispatchCompute* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDispatchCompute>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr5(
                ptr.as_raw_ptr() as *mut crate::QDispatchCompute,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDispatchCompute {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QDispatchCompute* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr5(
                    self as *const crate::QDispatchCompute as *mut crate::QDispatchCompute,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDispatchCompute> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDispatchCompute* dynamic_cast<Qt3DRender::QDispatchCompute*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QDispatchCompute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDispatchCompute_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDispatchCompute> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDispatchCompute* static_cast<Qt3DRender::QDispatchCompute*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDispatchCompute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDispatchCompute_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QDispatchCompute {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QDispatchCompute* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDispatchCompute>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr23(
                ptr.as_raw_ptr() as *mut crate::QDispatchCompute
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDispatchCompute> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDispatchCompute* dynamic_cast<Qt3DRender::QDispatchCompute*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDispatchCompute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDispatchCompute_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDispatchCompute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDispatchCompute* static_cast<Qt3DRender::QDispatchCompute*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDispatchCompute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDispatchCompute_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QDispatchCompute {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QDispatchCompute* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDispatchCompute>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr23(
                ptr.as_raw_ptr() as *mut crate::QDispatchCompute
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDispatchCompute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDispatchCompute* dynamic_cast<Qt3DRender::QDispatchCompute*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDispatchCompute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDispatchCompute_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDithering> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDithering* static_cast<Qt3DRender::QDithering*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QDithering> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDithering_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QDithering {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QDithering* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDithering>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr10(
                ptr.as_raw_ptr() as *mut crate::QDithering,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QDithering {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QDithering* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr10(
                    self as *const crate::QDithering as *mut crate::QDithering,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QDithering> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDithering* dynamic_cast<Qt3DRender::QDithering*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QDithering> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDithering_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDithering> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDithering* static_cast<Qt3DRender::QDithering*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDithering> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDithering_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QDithering {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QDithering* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDithering>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr24(
                ptr.as_raw_ptr() as *mut crate::QDithering
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDithering> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDithering* dynamic_cast<Qt3DRender::QDithering*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDithering> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDithering_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QDithering> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDithering* static_cast<Qt3DRender::QDithering*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDithering> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDithering_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QDithering {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QDithering* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDithering>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr24(
                ptr.as_raw_ptr() as *mut crate::QDithering
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QDithering> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDithering* dynamic_cast<Qt3DRender::QDithering*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDithering> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDithering_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QEffect> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEffect* static_cast<Qt3DRender::QEffect*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QEffect_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QEffect {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QEffect* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QEffect>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr25(
                ptr.as_raw_ptr() as *mut crate::QEffect
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QEffect {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QEffect* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr25(
                    self as *const crate::QEffect as *mut crate::QEffect,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QEffect> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEffect* dynamic_cast<Qt3DRender::QEffect*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QEffect_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QEffect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEffect* static_cast<Qt3DRender::QEffect*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QEffect_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QEffect {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QEffect* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QEffect>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr25(
                ptr.as_raw_ptr() as *mut crate::QEffect
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QEffect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEffect* dynamic_cast<Qt3DRender::QEffect*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QEffect_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QEnvironmentLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEnvironmentLight* static_cast<Qt3DRender::QEnvironmentLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QEnvironmentLight_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QEnvironmentLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QEnvironmentLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QEnvironmentLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr4(
                ptr.as_raw_ptr() as *mut crate::QEnvironmentLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QEnvironmentLight {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QEnvironmentLight* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr4(
                    self as *const crate::QEnvironmentLight as *mut crate::QEnvironmentLight,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QEnvironmentLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEnvironmentLight* dynamic_cast<Qt3DRender::QEnvironmentLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QEnvironmentLight_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QEnvironmentLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEnvironmentLight* static_cast<Qt3DRender::QEnvironmentLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QEnvironmentLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QEnvironmentLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QEnvironmentLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QEnvironmentLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr26(
                ptr.as_raw_ptr() as *mut crate::QEnvironmentLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QEnvironmentLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEnvironmentLight* dynamic_cast<Qt3DRender::QEnvironmentLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QEnvironmentLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QEnvironmentLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEnvironmentLight* static_cast<Qt3DRender::QEnvironmentLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QEnvironmentLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QEnvironmentLight {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QEnvironmentLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QEnvironmentLight>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr26(
                ptr.as_raw_ptr() as *mut crate::QEnvironmentLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QEnvironmentLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QEnvironmentLight* dynamic_cast<Qt3DRender::QEnvironmentLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QEnvironmentLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QEnvironmentLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFilterKey> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* static_cast<Qt3DRender::QFilterKey*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFilterKey_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QFilterKey {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QFilterKey* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFilterKey>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr27(
                ptr.as_raw_ptr() as *mut crate::QFilterKey
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QFilterKey {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QFilterKey* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr27(
                    self as *const crate::QFilterKey as *mut crate::QFilterKey,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QFilterKey> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* dynamic_cast<Qt3DRender::QFilterKey*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFilterKey_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFilterKey> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* static_cast<Qt3DRender::QFilterKey*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFilterKey_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QFilterKey {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QFilterKey* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFilterKey>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr27(
                ptr.as_raw_ptr() as *mut crate::QFilterKey
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QFilterKey> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFilterKey* dynamic_cast<Qt3DRender::QFilterKey*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFilterKey> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFilterKey_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrameGraphNodeCreatedChangeBase>
    for ::qt_3d_core::QNodeCreatedChangeBase
{
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNodeCreatedChangeBase* static_cast<Qt3DRender::QFrameGraphNodeCreatedChangeBase*>(Qt3DCore::QNodeCreatedChangeBase* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNodeCreatedChangeBase>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNodeCreatedChangeBase> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNodeCreatedChangeBase_ptr(ptr.as_raw_ptr() as *mut ::qt_3d_core::QNodeCreatedChangeBase)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNodeCreatedChangeBase>
    for crate::QFrameGraphNodeCreatedChangeBase
{
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNodeCreatedChangeBase* static_cast<Qt3DCore::QNodeCreatedChangeBase*>(Qt3DRender::QFrameGraphNodeCreatedChangeBase* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNodeCreatedChangeBase>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNodeCreatedChangeBase> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNodeCreatedChangeBase_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNodeCreatedChangeBase,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QFrameGraphNodeCreatedChangeBase {
    type Target = ::qt_3d_core::QNodeCreatedChangeBase;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNodeCreatedChangeBase* static_cast<Qt3DCore::QNodeCreatedChangeBase*>(Qt3DRender::QFrameGraphNodeCreatedChangeBase* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNodeCreatedChangeBase {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNodeCreatedChangeBase_ptr(
                    self as *const crate::QFrameGraphNodeCreatedChangeBase
                        as *mut crate::QFrameGraphNodeCreatedChangeBase,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QFrameGraphNodeCreatedChangeBase>
    for ::qt_3d_core::QNodeCreatedChangeBase
{
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNodeCreatedChangeBase* dynamic_cast<Qt3DRender::QFrameGraphNodeCreatedChangeBase*>(Qt3DCore::QNodeCreatedChangeBase* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNodeCreatedChangeBase>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNodeCreatedChangeBase> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrameGraphNodeCreatedChangeBase_ptr(ptr.as_raw_ptr() as *mut ::qt_3d_core::QNodeCreatedChangeBase)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrameGraphNodeCreatedChangeBase>
    for ::qt_3d_core::QSceneChange
{
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNodeCreatedChangeBase* static_cast<Qt3DRender::QFrameGraphNodeCreatedChangeBase*>(Qt3DCore::QSceneChange* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QSceneChange>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNodeCreatedChangeBase> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNodeCreatedChangeBase_ptr1(ptr.as_raw_ptr() as *mut ::qt_3d_core::QSceneChange)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QSceneChange>
    for crate::QFrameGraphNodeCreatedChangeBase
{
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QSceneChange* static_cast<Qt3DCore::QSceneChange*>(Qt3DRender::QFrameGraphNodeCreatedChangeBase* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNodeCreatedChangeBase>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QSceneChange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QSceneChange_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNodeCreatedChangeBase,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QFrameGraphNodeCreatedChangeBase>
    for ::qt_3d_core::QSceneChange
{
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNodeCreatedChangeBase* dynamic_cast<Qt3DRender::QFrameGraphNodeCreatedChangeBase*>(Qt3DCore::QSceneChange* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QSceneChange>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNodeCreatedChangeBase> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrameGraphNodeCreatedChangeBase_ptr1(ptr.as_raw_ptr() as *mut ::qt_3d_core::QSceneChange)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrontFace> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrontFace* static_cast<Qt3DRender::QFrontFace*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QFrontFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrontFace_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QFrontFace {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QFrontFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrontFace>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr11(
                ptr.as_raw_ptr() as *mut crate::QFrontFace,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QFrontFace {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QFrontFace* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr11(
                    self as *const crate::QFrontFace as *mut crate::QFrontFace,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QFrontFace> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrontFace* dynamic_cast<Qt3DRender::QFrontFace*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QFrontFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrontFace_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrontFace> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrontFace* static_cast<Qt3DRender::QFrontFace*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFrontFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrontFace_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QFrontFace {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QFrontFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrontFace>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr28(
                ptr.as_raw_ptr() as *mut crate::QFrontFace
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QFrontFace> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrontFace* dynamic_cast<Qt3DRender::QFrontFace*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFrontFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrontFace_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrontFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrontFace* static_cast<Qt3DRender::QFrontFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFrontFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrontFace_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QFrontFace {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QFrontFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrontFace>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr28(
                ptr.as_raw_ptr() as *mut crate::QFrontFace
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QFrontFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrontFace* dynamic_cast<Qt3DRender::QFrontFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFrontFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrontFace_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrustumCulling> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrustumCulling* static_cast<Qt3DRender::QFrustumCulling*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QFrustumCulling> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrustumCulling_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QFrustumCulling {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QFrustumCulling* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrustumCulling>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr6(
                ptr.as_raw_ptr() as *mut crate::QFrustumCulling,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QFrustumCulling {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QFrustumCulling* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr6(
                    self as *const crate::QFrustumCulling as *mut crate::QFrustumCulling,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QFrustumCulling> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrustumCulling* dynamic_cast<Qt3DRender::QFrustumCulling*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QFrustumCulling> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrustumCulling_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrustumCulling> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrustumCulling* static_cast<Qt3DRender::QFrustumCulling*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFrustumCulling> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrustumCulling_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QFrustumCulling {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QFrustumCulling* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrustumCulling>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr29(
                ptr.as_raw_ptr() as *mut crate::QFrustumCulling
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QFrustumCulling> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrustumCulling* dynamic_cast<Qt3DRender::QFrustumCulling*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QFrustumCulling> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrustumCulling_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QFrustumCulling> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrustumCulling* static_cast<Qt3DRender::QFrustumCulling*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFrustumCulling> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrustumCulling_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QFrustumCulling {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QFrustumCulling* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QFrustumCulling>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr29(
                ptr.as_raw_ptr() as *mut crate::QFrustumCulling
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QFrustumCulling> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrustumCulling* dynamic_cast<Qt3DRender::QFrustumCulling*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QFrustumCulling> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QFrustumCulling_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGeometry> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometry* static_cast<Qt3DRender::QGeometry*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometry_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QGeometry {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QGeometry* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGeometry>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr30(
                ptr.as_raw_ptr() as *mut crate::QGeometry
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QGeometry {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QGeometry* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr30(
                    self as *const crate::QGeometry as *mut crate::QGeometry,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QGeometry> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometry* dynamic_cast<Qt3DRender::QGeometry*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QGeometry_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGeometry> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometry* static_cast<Qt3DRender::QGeometry*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometry_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QGeometry {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QGeometry* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGeometry>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr30(
                ptr.as_raw_ptr() as *mut crate::QGeometry
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QGeometry> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometry* dynamic_cast<Qt3DRender::QGeometry*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QGeometry_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGeometryFactory> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryFactory* static_cast<Qt3DRender::QGeometryFactory*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QGeometryFactory> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometryFactory_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractFunctor,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractFunctor> for crate::QGeometryFactory {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QGeometryFactory* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGeometryFactory>,
    ) -> ::cpp_core::Ptr<crate::QAbstractFunctor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr2(
                ptr.as_raw_ptr() as *mut crate::QGeometryFactory,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QGeometryFactory {
    type Target = crate::QAbstractFunctor;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QGeometryFactory* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractFunctor {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr2(
                    self as *const crate::QGeometryFactory as *mut crate::QGeometryFactory,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QGeometryFactory> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryFactory* dynamic_cast<Qt3DRender::QGeometryFactory*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QGeometryFactory> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QGeometryFactory_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractFunctor,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGeometryRenderer> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* static_cast<Qt3DRender::QGeometryRenderer*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometryRenderer_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QGeometryRenderer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QGeometryRenderer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGeometryRenderer>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr5(
                ptr.as_raw_ptr() as *mut crate::QGeometryRenderer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QGeometryRenderer {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QGeometryRenderer* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr5(
                    self as *const crate::QGeometryRenderer as *mut crate::QGeometryRenderer,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QGeometryRenderer> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* dynamic_cast<Qt3DRender::QGeometryRenderer*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QGeometryRenderer_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGeometryRenderer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* static_cast<Qt3DRender::QGeometryRenderer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometryRenderer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QGeometryRenderer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QGeometryRenderer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGeometryRenderer>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr31(
                ptr.as_raw_ptr() as *mut crate::QGeometryRenderer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QGeometryRenderer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* dynamic_cast<Qt3DRender::QGeometryRenderer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QGeometryRenderer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGeometryRenderer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* static_cast<Qt3DRender::QGeometryRenderer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometryRenderer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QGeometryRenderer {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QGeometryRenderer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGeometryRenderer>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr31(
                ptr.as_raw_ptr() as *mut crate::QGeometryRenderer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QGeometryRenderer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* dynamic_cast<Qt3DRender::QGeometryRenderer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QGeometryRenderer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QGraphicsApiFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter* static_cast<Qt3DRender::QGraphicsApiFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGraphicsApiFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGraphicsApiFilter_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QGraphicsApiFilter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QGraphicsApiFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QGraphicsApiFilter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr32(
                ptr.as_raw_ptr() as *mut crate::QGraphicsApiFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QGraphicsApiFilter {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QGraphicsApiFilter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr32(
                    self as *const crate::QGraphicsApiFilter as *mut crate::QGraphicsApiFilter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QGraphicsApiFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGraphicsApiFilter* dynamic_cast<Qt3DRender::QGraphicsApiFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QGraphicsApiFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QGraphicsApiFilter_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLayer> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* static_cast<Qt3DRender::QLayer*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLayer_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QLayer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QLayer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLayer>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr6(
                ptr.as_raw_ptr() as *mut crate::QLayer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QLayer {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QLayer* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr6(
                    self as *const crate::QLayer as *mut crate::QLayer,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QLayer> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* dynamic_cast<Qt3DRender::QLayer*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLayer_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLayer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* static_cast<Qt3DRender::QLayer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLayer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QLayer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QLayer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLayer>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr32(
                ptr.as_raw_ptr() as *mut crate::QLayer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLayer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* dynamic_cast<Qt3DRender::QLayer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLayer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLayer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* static_cast<Qt3DRender::QLayer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLayer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QLayer {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QLayer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLayer>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr33(
                ptr.as_raw_ptr() as *mut crate::QLayer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLayer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayer* dynamic_cast<Qt3DRender::QLayer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLayer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLayer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLayerFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayerFilter* static_cast<Qt3DRender::QLayerFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QLayerFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLayerFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QLayerFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QLayerFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLayerFilter>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr7(
                ptr.as_raw_ptr() as *mut crate::QLayerFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QLayerFilter {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QLayerFilter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr7(
                    self as *const crate::QLayerFilter as *mut crate::QLayerFilter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QLayerFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayerFilter* dynamic_cast<Qt3DRender::QLayerFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QLayerFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLayerFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLayerFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayerFilter* static_cast<Qt3DRender::QLayerFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLayerFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLayerFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QLayerFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QLayerFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLayerFilter>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr33(
                ptr.as_raw_ptr() as *mut crate::QLayerFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLayerFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayerFilter* dynamic_cast<Qt3DRender::QLayerFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLayerFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLayerFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLayerFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayerFilter* static_cast<Qt3DRender::QLayerFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLayerFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLayerFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QLayerFilter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QLayerFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLayerFilter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr34(
                ptr.as_raw_ptr() as *mut crate::QLayerFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLayerFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLayerFilter* dynamic_cast<Qt3DRender::QLayerFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLayerFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLayerFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLevelOfDetail> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* static_cast<Qt3DRender::QLevelOfDetail*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetail_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QLevelOfDetail {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QLevelOfDetail* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetail>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr7(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetail,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QLevelOfDetail {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QLevelOfDetail* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr7(
                    self as *const crate::QLevelOfDetail as *mut crate::QLevelOfDetail,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QLevelOfDetail> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* dynamic_cast<Qt3DRender::QLevelOfDetail*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLevelOfDetail_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLevelOfDetail> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* static_cast<Qt3DRender::QLevelOfDetail*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetail_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QLevelOfDetail {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QLevelOfDetail* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetail>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr34(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetail
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLevelOfDetail> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* dynamic_cast<Qt3DRender::QLevelOfDetail*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLevelOfDetail_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLevelOfDetail> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* static_cast<Qt3DRender::QLevelOfDetail*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetail_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QLevelOfDetail {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QLevelOfDetail* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetail>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr35(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetail
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLevelOfDetail> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* dynamic_cast<Qt3DRender::QLevelOfDetail*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLevelOfDetail_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLevelOfDetailSwitch> for crate::QLevelOfDetail {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* static_cast<Qt3DRender::QLevelOfDetailSwitch*>(Qt3DRender::QLevelOfDetail* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetail>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetailSwitch_ptr(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetail,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QLevelOfDetail> for crate::QLevelOfDetailSwitch {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* static_cast<Qt3DRender::QLevelOfDetail*>(Qt3DRender::QLevelOfDetailSwitch* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetailSwitch>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetail> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetail_ptr3(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetailSwitch,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QLevelOfDetailSwitch {
    type Target = crate::QLevelOfDetail;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetail* static_cast<Qt3DRender::QLevelOfDetail*>(Qt3DRender::QLevelOfDetailSwitch* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QLevelOfDetail {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetail_ptr3(
                    self as *const crate::QLevelOfDetailSwitch as *mut crate::QLevelOfDetailSwitch,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QLevelOfDetailSwitch> for crate::QLevelOfDetail {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* dynamic_cast<Qt3DRender::QLevelOfDetailSwitch*>(Qt3DRender::QLevelOfDetail* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetail>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLevelOfDetailSwitch_ptr(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetail,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLevelOfDetailSwitch> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* static_cast<Qt3DRender::QLevelOfDetailSwitch*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetailSwitch_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QLevelOfDetailSwitch {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QLevelOfDetailSwitch* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetailSwitch>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr8(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetailSwitch,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLevelOfDetailSwitch> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* dynamic_cast<Qt3DRender::QLevelOfDetailSwitch*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLevelOfDetailSwitch_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLevelOfDetailSwitch> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* static_cast<Qt3DRender::QLevelOfDetailSwitch*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetailSwitch_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QLevelOfDetailSwitch {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QLevelOfDetailSwitch* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetailSwitch>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr35(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetailSwitch
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLevelOfDetailSwitch> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* dynamic_cast<Qt3DRender::QLevelOfDetailSwitch*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLevelOfDetailSwitch_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QLevelOfDetailSwitch> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* static_cast<Qt3DRender::QLevelOfDetailSwitch*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLevelOfDetailSwitch_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QLevelOfDetailSwitch {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QLevelOfDetailSwitch* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLevelOfDetailSwitch>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr36(
                ptr.as_raw_ptr() as *mut crate::QLevelOfDetailSwitch
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QLevelOfDetailSwitch> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLevelOfDetailSwitch* dynamic_cast<Qt3DRender::QLevelOfDetailSwitch*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLevelOfDetailSwitch> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLevelOfDetailSwitch_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMaterial> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMaterial* static_cast<Qt3DRender::QMaterial*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QMaterial> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMaterial_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QMaterial {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QMaterial* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMaterial>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr9(
                ptr.as_raw_ptr() as *mut crate::QMaterial,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QMaterial {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QMaterial* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr9(
                    self as *const crate::QMaterial as *mut crate::QMaterial,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QMaterial> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMaterial* dynamic_cast<Qt3DRender::QMaterial*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QMaterial> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMaterial_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMaterial> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMaterial* static_cast<Qt3DRender::QMaterial*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMaterial> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMaterial_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QMaterial {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QMaterial* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMaterial>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr36(
                ptr.as_raw_ptr() as *mut crate::QMaterial
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMaterial> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMaterial* dynamic_cast<Qt3DRender::QMaterial*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMaterial> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMaterial_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMaterial> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMaterial* static_cast<Qt3DRender::QMaterial*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMaterial> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMaterial_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QMaterial {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QMaterial* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMaterial>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr37(
                ptr.as_raw_ptr() as *mut crate::QMaterial
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMaterial> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMaterial* dynamic_cast<Qt3DRender::QMaterial*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMaterial> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMaterial_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMemoryBarrier> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMemoryBarrier* static_cast<Qt3DRender::QMemoryBarrier*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QMemoryBarrier> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMemoryBarrier_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QMemoryBarrier {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QMemoryBarrier* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMemoryBarrier>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr8(
                ptr.as_raw_ptr() as *mut crate::QMemoryBarrier,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QMemoryBarrier {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QMemoryBarrier* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr8(
                    self as *const crate::QMemoryBarrier as *mut crate::QMemoryBarrier,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QMemoryBarrier> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMemoryBarrier* dynamic_cast<Qt3DRender::QMemoryBarrier*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QMemoryBarrier> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMemoryBarrier_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMemoryBarrier> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMemoryBarrier* static_cast<Qt3DRender::QMemoryBarrier*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMemoryBarrier> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMemoryBarrier_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QMemoryBarrier {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QMemoryBarrier* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMemoryBarrier>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr37(
                ptr.as_raw_ptr() as *mut crate::QMemoryBarrier
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMemoryBarrier> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMemoryBarrier* dynamic_cast<Qt3DRender::QMemoryBarrier*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMemoryBarrier> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMemoryBarrier_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMemoryBarrier> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMemoryBarrier* static_cast<Qt3DRender::QMemoryBarrier*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMemoryBarrier> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMemoryBarrier_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QMemoryBarrier {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QMemoryBarrier* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMemoryBarrier>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr38(
                ptr.as_raw_ptr() as *mut crate::QMemoryBarrier
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMemoryBarrier> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMemoryBarrier* dynamic_cast<Qt3DRender::QMemoryBarrier*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMemoryBarrier> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMemoryBarrier_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMesh> for crate::QGeometryRenderer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* static_cast<Qt3DRender::QMesh*>(Qt3DRender::QGeometryRenderer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QGeometryRenderer>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMesh_ptr(
                ptr.as_raw_ptr() as *mut crate::QGeometryRenderer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QGeometryRenderer> for crate::QMesh {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* static_cast<Qt3DRender::QGeometryRenderer*>(Qt3DRender::QMesh* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMesh>,
    ) -> ::cpp_core::Ptr<crate::QGeometryRenderer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometryRenderer_ptr3(
                ptr.as_raw_ptr() as *mut crate::QMesh,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QMesh {
    type Target = crate::QGeometryRenderer;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QGeometryRenderer* static_cast<Qt3DRender::QGeometryRenderer*>(Qt3DRender::QMesh* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QGeometryRenderer {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QGeometryRenderer_ptr3(
                    self as *const crate::QMesh as *mut crate::QMesh,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QMesh> for crate::QGeometryRenderer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* dynamic_cast<Qt3DRender::QMesh*>(Qt3DRender::QGeometryRenderer* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QGeometryRenderer>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMesh_ptr(
                ptr.as_raw_ptr() as *mut crate::QGeometryRenderer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMesh> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* static_cast<Qt3DRender::QMesh*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMesh_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QMesh {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QMesh* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMesh>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr10(
                ptr.as_raw_ptr() as *mut crate::QMesh,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMesh> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* dynamic_cast<Qt3DRender::QMesh*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMesh_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMesh> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* static_cast<Qt3DRender::QMesh*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMesh_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QMesh {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QMesh* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMesh>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr38(
                ptr.as_raw_ptr() as *mut crate::QMesh
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMesh> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* dynamic_cast<Qt3DRender::QMesh*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMesh_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMesh> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* static_cast<Qt3DRender::QMesh*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMesh_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QMesh {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QMesh* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMesh>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr39(
                ptr.as_raw_ptr() as *mut crate::QMesh
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMesh> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMesh* dynamic_cast<Qt3DRender::QMesh*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMesh> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMesh_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMultiSampleAntiAliasing> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMultiSampleAntiAliasing* static_cast<Qt3DRender::QMultiSampleAntiAliasing*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMultiSampleAntiAliasing_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QMultiSampleAntiAliasing {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QMultiSampleAntiAliasing* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr12(
                ptr.as_raw_ptr() as *mut crate::QMultiSampleAntiAliasing,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QMultiSampleAntiAliasing {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QMultiSampleAntiAliasing* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr12(
                    self as *const crate::QMultiSampleAntiAliasing
                        as *mut crate::QMultiSampleAntiAliasing,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QMultiSampleAntiAliasing> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMultiSampleAntiAliasing* dynamic_cast<Qt3DRender::QMultiSampleAntiAliasing*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMultiSampleAntiAliasing_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMultiSampleAntiAliasing> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMultiSampleAntiAliasing* static_cast<Qt3DRender::QMultiSampleAntiAliasing*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMultiSampleAntiAliasing_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QMultiSampleAntiAliasing {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QMultiSampleAntiAliasing* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr39(
                ptr.as_raw_ptr() as *mut crate::QMultiSampleAntiAliasing
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMultiSampleAntiAliasing> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMultiSampleAntiAliasing* dynamic_cast<Qt3DRender::QMultiSampleAntiAliasing*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMultiSampleAntiAliasing_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QMultiSampleAntiAliasing> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMultiSampleAntiAliasing* static_cast<Qt3DRender::QMultiSampleAntiAliasing*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QMultiSampleAntiAliasing_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QMultiSampleAntiAliasing {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QMultiSampleAntiAliasing* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr40(
                ptr.as_raw_ptr() as *mut crate::QMultiSampleAntiAliasing
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QMultiSampleAntiAliasing> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QMultiSampleAntiAliasing* dynamic_cast<Qt3DRender::QMultiSampleAntiAliasing*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QMultiSampleAntiAliasing> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QMultiSampleAntiAliasing_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNoDepthMask> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDepthMask* static_cast<Qt3DRender::QNoDepthMask*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QNoDepthMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoDepthMask_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QNoDepthMask {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QNoDepthMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoDepthMask>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr13(
                ptr.as_raw_ptr() as *mut crate::QNoDepthMask,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QNoDepthMask {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QNoDepthMask* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr13(
                    self as *const crate::QNoDepthMask as *mut crate::QNoDepthMask,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QNoDepthMask> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDepthMask* dynamic_cast<Qt3DRender::QNoDepthMask*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QNoDepthMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoDepthMask_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNoDepthMask> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDepthMask* static_cast<Qt3DRender::QNoDepthMask*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QNoDepthMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoDepthMask_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QNoDepthMask {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QNoDepthMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoDepthMask>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr40(
                ptr.as_raw_ptr() as *mut crate::QNoDepthMask
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QNoDepthMask> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDepthMask* dynamic_cast<Qt3DRender::QNoDepthMask*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QNoDepthMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoDepthMask_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNoDepthMask> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDepthMask* static_cast<Qt3DRender::QNoDepthMask*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QNoDepthMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoDepthMask_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QNoDepthMask {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QNoDepthMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoDepthMask>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr41(
                ptr.as_raw_ptr() as *mut crate::QNoDepthMask
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QNoDepthMask> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDepthMask* dynamic_cast<Qt3DRender::QNoDepthMask*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QNoDepthMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoDepthMask_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNoDraw> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDraw* static_cast<Qt3DRender::QNoDraw*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QNoDraw> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoDraw_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QNoDraw {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QNoDraw* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoDraw>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr9(
                ptr.as_raw_ptr() as *mut crate::QNoDraw,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QNoDraw {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QNoDraw* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr9(
                    self as *const crate::QNoDraw as *mut crate::QNoDraw,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QNoDraw> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDraw* dynamic_cast<Qt3DRender::QNoDraw*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QNoDraw> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoDraw_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNoDraw> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDraw* static_cast<Qt3DRender::QNoDraw*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QNoDraw> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoDraw_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QNoDraw {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QNoDraw* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoDraw>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr41(
                ptr.as_raw_ptr() as *mut crate::QNoDraw
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QNoDraw> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDraw* dynamic_cast<Qt3DRender::QNoDraw*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QNoDraw> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoDraw_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QNoDraw> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDraw* static_cast<Qt3DRender::QNoDraw*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QNoDraw> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoDraw_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QNoDraw {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QNoDraw* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoDraw>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr42(
                ptr.as_raw_ptr() as *mut crate::QNoDraw
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QNoDraw> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoDraw* dynamic_cast<Qt3DRender::QNoDraw*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QNoDraw> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoDraw_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QObjectPicker> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QObjectPicker* static_cast<Qt3DRender::QObjectPicker*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QObjectPicker> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QObjectPicker_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QObjectPicker {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QObjectPicker* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QObjectPicker>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr11(
                ptr.as_raw_ptr() as *mut crate::QObjectPicker,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QObjectPicker {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QObjectPicker* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr11(
                    self as *const crate::QObjectPicker as *mut crate::QObjectPicker,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QObjectPicker> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QObjectPicker* dynamic_cast<Qt3DRender::QObjectPicker*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QObjectPicker> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QObjectPicker_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QObjectPicker> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QObjectPicker* static_cast<Qt3DRender::QObjectPicker*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QObjectPicker> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QObjectPicker_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QObjectPicker {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QObjectPicker* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QObjectPicker>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr42(
                ptr.as_raw_ptr() as *mut crate::QObjectPicker
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QObjectPicker> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QObjectPicker* dynamic_cast<Qt3DRender::QObjectPicker*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QObjectPicker> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QObjectPicker_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QObjectPicker> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QObjectPicker* static_cast<Qt3DRender::QObjectPicker*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QObjectPicker> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QObjectPicker_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QObjectPicker {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QObjectPicker* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QObjectPicker>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr43(
                ptr.as_raw_ptr() as *mut crate::QObjectPicker
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QObjectPicker> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QObjectPicker* dynamic_cast<Qt3DRender::QObjectPicker*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QObjectPicker> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QObjectPicker_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintedTextureImage> for crate::QAbstractTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPaintedTextureImage* static_cast<Qt3DRender::QPaintedTextureImage*>(Qt3DRender::QAbstractTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTextureImage>,
    ) -> ::cpp_core::Ptr<crate::QPaintedTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPaintedTextureImage_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTextureImage> for crate::QPaintedTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* static_cast<Qt3DRender::QAbstractTextureImage*>(Qt3DRender::QPaintedTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintedTextureImage>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTextureImage_ptr2(
                ptr.as_raw_ptr() as *mut crate::QPaintedTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPaintedTextureImage {
    type Target = crate::QAbstractTextureImage;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* static_cast<Qt3DRender::QAbstractTextureImage*>(Qt3DRender::QPaintedTextureImage* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTextureImage {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTextureImage_ptr2(
                    self as *const crate::QPaintedTextureImage as *mut crate::QPaintedTextureImage,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintedTextureImage> for crate::QAbstractTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPaintedTextureImage* dynamic_cast<Qt3DRender::QPaintedTextureImage*>(Qt3DRender::QAbstractTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTextureImage>,
    ) -> ::cpp_core::Ptr<crate::QPaintedTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPaintedTextureImage_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintedTextureImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPaintedTextureImage* static_cast<Qt3DRender::QPaintedTextureImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPaintedTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPaintedTextureImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QPaintedTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QPaintedTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintedTextureImage>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr43(
                ptr.as_raw_ptr() as *mut crate::QPaintedTextureImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintedTextureImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPaintedTextureImage* dynamic_cast<Qt3DRender::QPaintedTextureImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPaintedTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPaintedTextureImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPaintedTextureImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPaintedTextureImage* static_cast<Qt3DRender::QPaintedTextureImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPaintedTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPaintedTextureImage_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPaintedTextureImage {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPaintedTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPaintedTextureImage>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr44(
                ptr.as_raw_ptr() as *mut crate::QPaintedTextureImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPaintedTextureImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPaintedTextureImage* dynamic_cast<Qt3DRender::QPaintedTextureImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPaintedTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPaintedTextureImage_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QParameter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* static_cast<Qt3DRender::QParameter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QParameter_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QParameter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QParameter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QParameter>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr44(
                ptr.as_raw_ptr() as *mut crate::QParameter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QParameter {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QParameter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr44(
                    self as *const crate::QParameter as *mut crate::QParameter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QParameter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* dynamic_cast<Qt3DRender::QParameter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QParameter_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QParameter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* static_cast<Qt3DRender::QParameter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QParameter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QParameter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QParameter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QParameter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr45(
                ptr.as_raw_ptr() as *mut crate::QParameter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QParameter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QParameter* dynamic_cast<Qt3DRender::QParameter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QParameter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QParameter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPickEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* static_cast<Qt3DRender::QPickEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickEvent_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr46(
                ptr.as_raw_ptr() as *mut crate::QPickEvent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPickEvent {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr46(
                    self as *const crate::QPickEvent as *mut crate::QPickEvent,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPickEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* dynamic_cast<Qt3DRender::QPickEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickEvent_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPickingSettings> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings* static_cast<Qt3DRender::QPickingSettings*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPickingSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickingSettings_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QPickingSettings {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QPickingSettings* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickingSettings>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr45(
                ptr.as_raw_ptr() as *mut crate::QPickingSettings
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPickingSettings {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QPickingSettings* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr45(
                    self as *const crate::QPickingSettings as *mut crate::QPickingSettings,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPickingSettings> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings* dynamic_cast<Qt3DRender::QPickingSettings*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPickingSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickingSettings_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPickingSettings> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings* static_cast<Qt3DRender::QPickingSettings*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickingSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickingSettings_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPickingSettings {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPickingSettings* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickingSettings>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr47(
                ptr.as_raw_ptr() as *mut crate::QPickingSettings
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPickingSettings> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickingSettings* dynamic_cast<Qt3DRender::QPickingSettings*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickingSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickingSettings_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPickTriangleEvent> for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickTriangleEvent* static_cast<Qt3DRender::QPickTriangleEvent*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPickEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickTriangleEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickTriangleEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QPickEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QPickEvent> for crate::QPickTriangleEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* static_cast<Qt3DRender::QPickEvent*>(Qt3DRender::QPickTriangleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickTriangleEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickEvent_ptr1(
                ptr.as_raw_ptr() as *mut crate::QPickTriangleEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPickTriangleEvent {
    type Target = crate::QPickEvent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* static_cast<Qt3DRender::QPickEvent*>(Qt3DRender::QPickTriangleEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPickEvent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickEvent_ptr1(
                    self as *const crate::QPickTriangleEvent as *mut crate::QPickTriangleEvent,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPickTriangleEvent> for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickTriangleEvent* dynamic_cast<Qt3DRender::QPickTriangleEvent*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPickEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickTriangleEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickTriangleEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QPickEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPickTriangleEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickTriangleEvent* static_cast<Qt3DRender::QPickTriangleEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickTriangleEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickTriangleEvent_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPickTriangleEvent {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPickTriangleEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickTriangleEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr48(
                ptr.as_raw_ptr() as *mut crate::QPickTriangleEvent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPickTriangleEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickTriangleEvent* dynamic_cast<Qt3DRender::QPickTriangleEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickTriangleEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickTriangleEvent_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPointLight> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* static_cast<Qt3DRender::QPointLight*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPointLight_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractLight> for crate::QPointLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DRender::QPointLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPointLight>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr4(
                ptr.as_raw_ptr() as *mut crate::QPointLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPointLight {
    type Target = crate::QAbstractLight;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DRender::QPointLight* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractLight {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr4(
                    self as *const crate::QPointLight as *mut crate::QPointLight,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPointLight> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* dynamic_cast<Qt3DRender::QPointLight*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPointLight_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPointLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* static_cast<Qt3DRender::QPointLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPointLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QPointLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QPointLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPointLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr12(
                ptr.as_raw_ptr() as *mut crate::QPointLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPointLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* dynamic_cast<Qt3DRender::QPointLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPointLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPointLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* static_cast<Qt3DRender::QPointLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPointLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QPointLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QPointLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPointLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr46(
                ptr.as_raw_ptr() as *mut crate::QPointLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPointLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* dynamic_cast<Qt3DRender::QPointLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPointLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPointLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* static_cast<Qt3DRender::QPointLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPointLight_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPointLight {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPointLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPointLight>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr49(
                ptr.as_raw_ptr() as *mut crate::QPointLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPointLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointLight* dynamic_cast<Qt3DRender::QPointLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPointLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPointLight_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPointSize> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointSize* static_cast<Qt3DRender::QPointSize*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QPointSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPointSize_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QPointSize {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QPointSize* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPointSize>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr14(
                ptr.as_raw_ptr() as *mut crate::QPointSize,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPointSize {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QPointSize* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr14(
                    self as *const crate::QPointSize as *mut crate::QPointSize,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPointSize> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointSize* dynamic_cast<Qt3DRender::QPointSize*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QPointSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPointSize_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPointSize> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointSize* static_cast<Qt3DRender::QPointSize*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPointSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPointSize_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QPointSize {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QPointSize* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPointSize>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr47(
                ptr.as_raw_ptr() as *mut crate::QPointSize
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPointSize> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointSize* dynamic_cast<Qt3DRender::QPointSize*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPointSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPointSize_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPointSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointSize* static_cast<Qt3DRender::QPointSize*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPointSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPointSize_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPointSize {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPointSize* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPointSize>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr50(
                ptr.as_raw_ptr() as *mut crate::QPointSize
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPointSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPointSize* dynamic_cast<Qt3DRender::QPointSize*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPointSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPointSize_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPolygonOffset> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPolygonOffset* static_cast<Qt3DRender::QPolygonOffset*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QPolygonOffset> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPolygonOffset_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QPolygonOffset {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QPolygonOffset* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPolygonOffset>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr15(
                ptr.as_raw_ptr() as *mut crate::QPolygonOffset,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QPolygonOffset {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QPolygonOffset* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr15(
                    self as *const crate::QPolygonOffset as *mut crate::QPolygonOffset,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QPolygonOffset> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPolygonOffset* dynamic_cast<Qt3DRender::QPolygonOffset*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QPolygonOffset> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPolygonOffset_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPolygonOffset> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPolygonOffset* static_cast<Qt3DRender::QPolygonOffset*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPolygonOffset> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPolygonOffset_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QPolygonOffset {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QPolygonOffset* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPolygonOffset>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr48(
                ptr.as_raw_ptr() as *mut crate::QPolygonOffset
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPolygonOffset> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPolygonOffset* dynamic_cast<Qt3DRender::QPolygonOffset*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QPolygonOffset> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPolygonOffset_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QPolygonOffset> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPolygonOffset* static_cast<Qt3DRender::QPolygonOffset*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPolygonOffset> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPolygonOffset_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPolygonOffset {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPolygonOffset* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPolygonOffset>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr51(
                ptr.as_raw_ptr() as *mut crate::QPolygonOffset
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QPolygonOffset> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPolygonOffset* dynamic_cast<Qt3DRender::QPolygonOffset*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPolygonOffset> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPolygonOffset_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderAspect> for ::qt_3d_core::QAbstractAspect {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderAspect* static_cast<Qt3DRender::QRenderAspect*>(Qt3DCore::QAbstractAspect* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QAbstractAspect>,
    ) -> ::cpp_core::Ptr<crate::QRenderAspect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderAspect_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QAbstractAspect,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QAbstractAspect> for crate::QRenderAspect {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QAbstractAspect* static_cast<Qt3DCore::QAbstractAspect*>(Qt3DRender::QRenderAspect* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderAspect>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QAbstractAspect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QAbstractAspect_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderAspect,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderAspect {
    type Target = ::qt_3d_core::QAbstractAspect;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QAbstractAspect* static_cast<Qt3DCore::QAbstractAspect*>(Qt3DRender::QRenderAspect* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QAbstractAspect {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QAbstractAspect_ptr(
                    self as *const crate::QRenderAspect as *mut crate::QRenderAspect,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderAspect> for ::qt_3d_core::QAbstractAspect {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderAspect* dynamic_cast<Qt3DRender::QRenderAspect*>(Qt3DCore::QAbstractAspect* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QAbstractAspect>,
    ) -> ::cpp_core::Ptr<crate::QRenderAspect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderAspect_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QAbstractAspect,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderAspect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderAspect* static_cast<Qt3DRender::QRenderAspect*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderAspect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderAspect_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderAspect {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderAspect* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderAspect>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr52(
                ptr.as_raw_ptr() as *mut crate::QRenderAspect
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderAspect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderAspect* dynamic_cast<Qt3DRender::QRenderAspect*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderAspect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderAspect_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderCaptureReply> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCaptureReply* static_cast<Qt3DRender::QRenderCaptureReply*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderCaptureReply> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderCaptureReply_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderCaptureReply {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderCaptureReply* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderCaptureReply>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr53(
                ptr.as_raw_ptr() as *mut crate::QRenderCaptureReply
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderCaptureReply {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderCaptureReply* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr53(
                    self as *const crate::QRenderCaptureReply as *mut crate::QRenderCaptureReply,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderCaptureReply> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCaptureReply* dynamic_cast<Qt3DRender::QRenderCaptureReply*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderCaptureReply> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderCaptureReply_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderCapture> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCapture* static_cast<Qt3DRender::QRenderCapture*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderCapture_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QRenderCapture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderCapture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderCapture>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr10(
                ptr.as_raw_ptr() as *mut crate::QRenderCapture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderCapture {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderCapture* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr10(
                    self as *const crate::QRenderCapture as *mut crate::QRenderCapture,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderCapture> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCapture* dynamic_cast<Qt3DRender::QRenderCapture*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderCapture_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderCapture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCapture* static_cast<Qt3DRender::QRenderCapture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderCapture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderCapture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderCapture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderCapture>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr49(
                ptr.as_raw_ptr() as *mut crate::QRenderCapture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderCapture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCapture* dynamic_cast<Qt3DRender::QRenderCapture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderCapture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderCapture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCapture* static_cast<Qt3DRender::QRenderCapture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderCapture_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderCapture {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderCapture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderCapture>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr54(
                ptr.as_raw_ptr() as *mut crate::QRenderCapture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderCapture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderCapture* dynamic_cast<Qt3DRender::QRenderCapture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderCapture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderCapture_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QShaderProgram> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgram* static_cast<Qt3DRender::QShaderProgram*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderProgram_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QShaderProgram* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderProgram>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr50(
                ptr.as_raw_ptr() as *mut crate::QShaderProgram
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QShaderProgram {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QShaderProgram* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr50(
                    self as *const crate::QShaderProgram as *mut crate::QShaderProgram,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QShaderProgram> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgram* dynamic_cast<Qt3DRender::QShaderProgram*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderProgram_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgram* static_cast<Qt3DRender::QShaderProgram*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderProgram_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QShaderProgram* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderProgram>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr55(
                ptr.as_raw_ptr() as *mut crate::QShaderProgram
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgram* dynamic_cast<Qt3DRender::QShaderProgram*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderProgram_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderPass> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* static_cast<Qt3DRender::QRenderPass*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderPass_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderPass {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderPass* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderPass>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr51(
                ptr.as_raw_ptr() as *mut crate::QRenderPass
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderPass {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderPass* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr51(
                    self as *const crate::QRenderPass as *mut crate::QRenderPass,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderPass> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* dynamic_cast<Qt3DRender::QRenderPass*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderPass_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderPass> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* static_cast<Qt3DRender::QRenderPass*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderPass_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderPass {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderPass* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderPass>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr56(
                ptr.as_raw_ptr() as *mut crate::QRenderPass
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderPass> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPass* dynamic_cast<Qt3DRender::QRenderPass*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderPass> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderPass_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderPassFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPassFilter* static_cast<Qt3DRender::QRenderPassFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderPassFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QRenderPassFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderPassFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderPassFilter>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr11(
                ptr.as_raw_ptr() as *mut crate::QRenderPassFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderPassFilter {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderPassFilter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr11(
                    self as *const crate::QRenderPassFilter as *mut crate::QRenderPassFilter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderPassFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPassFilter* dynamic_cast<Qt3DRender::QRenderPassFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderPassFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderPassFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPassFilter* static_cast<Qt3DRender::QRenderPassFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderPassFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderPassFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderPassFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderPassFilter>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr52(
                ptr.as_raw_ptr() as *mut crate::QRenderPassFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderPassFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPassFilter* dynamic_cast<Qt3DRender::QRenderPassFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderPassFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderPassFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPassFilter* static_cast<Qt3DRender::QRenderPassFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderPassFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderPassFilter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderPassFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderPassFilter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr57(
                ptr.as_raw_ptr() as *mut crate::QRenderPassFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderPassFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderPassFilter* dynamic_cast<Qt3DRender::QRenderPassFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderPassFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderPassFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderSettings> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSettings* static_cast<Qt3DRender::QRenderSettings*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QRenderSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderSettings_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QRenderSettings {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QRenderSettings* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderSettings>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr13(
                ptr.as_raw_ptr() as *mut crate::QRenderSettings,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderSettings {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QRenderSettings* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr13(
                    self as *const crate::QRenderSettings as *mut crate::QRenderSettings,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderSettings> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSettings* dynamic_cast<Qt3DRender::QRenderSettings*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QRenderSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderSettings_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderSettings> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSettings* static_cast<Qt3DRender::QRenderSettings*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderSettings_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderSettings {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderSettings* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderSettings>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr53(
                ptr.as_raw_ptr() as *mut crate::QRenderSettings
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderSettings> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSettings* dynamic_cast<Qt3DRender::QRenderSettings*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderSettings_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderSettings> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSettings* static_cast<Qt3DRender::QRenderSettings*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderSettings_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderSettings {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderSettings* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderSettings>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr58(
                ptr.as_raw_ptr() as *mut crate::QRenderSettings
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderSettings> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSettings* dynamic_cast<Qt3DRender::QRenderSettings*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderSettings> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderSettings_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderStateSet> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderStateSet* static_cast<Qt3DRender::QRenderStateSet*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderStateSet> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderStateSet_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QRenderStateSet {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderStateSet* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderStateSet>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr12(
                ptr.as_raw_ptr() as *mut crate::QRenderStateSet,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderStateSet {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderStateSet* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr12(
                    self as *const crate::QRenderStateSet as *mut crate::QRenderStateSet,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderStateSet> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderStateSet* dynamic_cast<Qt3DRender::QRenderStateSet*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderStateSet> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderStateSet_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderStateSet> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderStateSet* static_cast<Qt3DRender::QRenderStateSet*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderStateSet> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderStateSet_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderStateSet {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderStateSet* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderStateSet>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr54(
                ptr.as_raw_ptr() as *mut crate::QRenderStateSet
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderStateSet> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderStateSet* dynamic_cast<Qt3DRender::QRenderStateSet*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderStateSet> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderStateSet_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderStateSet> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderStateSet* static_cast<Qt3DRender::QRenderStateSet*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderStateSet> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderStateSet_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderStateSet {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderStateSet* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderStateSet>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr59(
                ptr.as_raw_ptr() as *mut crate::QRenderStateSet
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderStateSet> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderStateSet* dynamic_cast<Qt3DRender::QRenderStateSet*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderStateSet> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderStateSet_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderSurfaceSelector> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSurfaceSelector* static_cast<Qt3DRender::QRenderSurfaceSelector*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderSurfaceSelector_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QRenderSurfaceSelector {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderSurfaceSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderSurfaceSelector>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr13(
                ptr.as_raw_ptr() as *mut crate::QRenderSurfaceSelector,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderSurfaceSelector {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderSurfaceSelector* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr13(
                    self as *const crate::QRenderSurfaceSelector
                        as *mut crate::QRenderSurfaceSelector,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderSurfaceSelector> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSurfaceSelector* dynamic_cast<Qt3DRender::QRenderSurfaceSelector*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderSurfaceSelector_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderSurfaceSelector> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSurfaceSelector* static_cast<Qt3DRender::QRenderSurfaceSelector*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderSurfaceSelector_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderSurfaceSelector {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderSurfaceSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderSurfaceSelector>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr55(
                ptr.as_raw_ptr() as *mut crate::QRenderSurfaceSelector
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderSurfaceSelector> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSurfaceSelector* dynamic_cast<Qt3DRender::QRenderSurfaceSelector*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderSurfaceSelector_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderSurfaceSelector> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSurfaceSelector* static_cast<Qt3DRender::QRenderSurfaceSelector*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderSurfaceSelector_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderSurfaceSelector {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderSurfaceSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderSurfaceSelector>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr60(
                ptr.as_raw_ptr() as *mut crate::QRenderSurfaceSelector
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderSurfaceSelector> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderSurfaceSelector* dynamic_cast<Qt3DRender::QRenderSurfaceSelector*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderSurfaceSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderSurfaceSelector_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTarget> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* static_cast<Qt3DRender::QRenderTarget*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTarget_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QRenderTarget* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTarget>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr14(
                ptr.as_raw_ptr() as *mut crate::QRenderTarget,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderTarget {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QRenderTarget* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr14(
                    self as *const crate::QRenderTarget as *mut crate::QRenderTarget,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTarget> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* dynamic_cast<Qt3DRender::QRenderTarget*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTarget_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTarget> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* static_cast<Qt3DRender::QRenderTarget*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTarget_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderTarget* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTarget>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr56(
                ptr.as_raw_ptr() as *mut crate::QRenderTarget
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTarget> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* dynamic_cast<Qt3DRender::QRenderTarget*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTarget_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTarget> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* static_cast<Qt3DRender::QRenderTarget*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTarget_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderTarget* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTarget>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr61(
                ptr.as_raw_ptr() as *mut crate::QRenderTarget
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTarget> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTarget* dynamic_cast<Qt3DRender::QRenderTarget*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTarget_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTargetSelector> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetSelector* static_cast<Qt3DRender::QRenderTargetSelector*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTargetSelector_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QRenderTargetSelector {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderTargetSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTargetSelector>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr14(
                ptr.as_raw_ptr() as *mut crate::QRenderTargetSelector,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QRenderTargetSelector {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QRenderTargetSelector* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr14(
                    self as *const crate::QRenderTargetSelector
                        as *mut crate::QRenderTargetSelector,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTargetSelector> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetSelector* dynamic_cast<Qt3DRender::QRenderTargetSelector*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTargetSelector_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTargetSelector> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetSelector* static_cast<Qt3DRender::QRenderTargetSelector*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTargetSelector_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRenderTargetSelector {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRenderTargetSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTargetSelector>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr57(
                ptr.as_raw_ptr() as *mut crate::QRenderTargetSelector
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTargetSelector> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetSelector* dynamic_cast<Qt3DRender::QRenderTargetSelector*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTargetSelector_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QRenderTargetSelector> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetSelector* static_cast<Qt3DRender::QRenderTargetSelector*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderTargetSelector_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRenderTargetSelector {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRenderTargetSelector* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRenderTargetSelector>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr62(
                ptr.as_raw_ptr() as *mut crate::QRenderTargetSelector
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QRenderTargetSelector> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderTargetSelector* dynamic_cast<Qt3DRender::QRenderTargetSelector*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRenderTargetSelector> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRenderTargetSelector_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSceneLoader> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSceneLoader* static_cast<Qt3DRender::QSceneLoader*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QSceneLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSceneLoader_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QSceneLoader {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QSceneLoader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSceneLoader>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr15(
                ptr.as_raw_ptr() as *mut crate::QSceneLoader,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QSceneLoader {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QSceneLoader* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr15(
                    self as *const crate::QSceneLoader as *mut crate::QSceneLoader,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QSceneLoader> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSceneLoader* dynamic_cast<Qt3DRender::QSceneLoader*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QSceneLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSceneLoader_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSceneLoader> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSceneLoader* static_cast<Qt3DRender::QSceneLoader*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSceneLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSceneLoader_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QSceneLoader {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSceneLoader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSceneLoader>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr58(
                ptr.as_raw_ptr() as *mut crate::QSceneLoader
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSceneLoader> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSceneLoader* dynamic_cast<Qt3DRender::QSceneLoader*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSceneLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSceneLoader_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSceneLoader> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSceneLoader* static_cast<Qt3DRender::QSceneLoader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSceneLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSceneLoader_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSceneLoader {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QSceneLoader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSceneLoader>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr63(
                ptr.as_raw_ptr() as *mut crate::QSceneLoader
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSceneLoader> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSceneLoader* dynamic_cast<Qt3DRender::QSceneLoader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSceneLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSceneLoader_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QScissorTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScissorTest* static_cast<Qt3DRender::QScissorTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QScissorTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QScissorTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QScissorTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QScissorTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScissorTest>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr16(
                ptr.as_raw_ptr() as *mut crate::QScissorTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QScissorTest {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QScissorTest* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr16(
                    self as *const crate::QScissorTest as *mut crate::QScissorTest,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QScissorTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScissorTest* dynamic_cast<Qt3DRender::QScissorTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QScissorTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QScissorTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QScissorTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScissorTest* static_cast<Qt3DRender::QScissorTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QScissorTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QScissorTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QScissorTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QScissorTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScissorTest>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr59(
                ptr.as_raw_ptr() as *mut crate::QScissorTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QScissorTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScissorTest* dynamic_cast<Qt3DRender::QScissorTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QScissorTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QScissorTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QScissorTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScissorTest* static_cast<Qt3DRender::QScissorTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QScissorTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QScissorTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QScissorTest {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QScissorTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScissorTest>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr64(
                ptr.as_raw_ptr() as *mut crate::QScissorTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QScissorTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScissorTest* dynamic_cast<Qt3DRender::QScissorTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QScissorTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QScissorTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSeamlessCubemap> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSeamlessCubemap* static_cast<Qt3DRender::QSeamlessCubemap*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QSeamlessCubemap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSeamlessCubemap_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QSeamlessCubemap {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QSeamlessCubemap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSeamlessCubemap>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr17(
                ptr.as_raw_ptr() as *mut crate::QSeamlessCubemap,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QSeamlessCubemap {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QSeamlessCubemap* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr17(
                    self as *const crate::QSeamlessCubemap as *mut crate::QSeamlessCubemap,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QSeamlessCubemap> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSeamlessCubemap* dynamic_cast<Qt3DRender::QSeamlessCubemap*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QSeamlessCubemap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSeamlessCubemap_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSeamlessCubemap> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSeamlessCubemap* static_cast<Qt3DRender::QSeamlessCubemap*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSeamlessCubemap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSeamlessCubemap_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QSeamlessCubemap {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSeamlessCubemap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSeamlessCubemap>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr60(
                ptr.as_raw_ptr() as *mut crate::QSeamlessCubemap
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSeamlessCubemap> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSeamlessCubemap* dynamic_cast<Qt3DRender::QSeamlessCubemap*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSeamlessCubemap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSeamlessCubemap_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSeamlessCubemap> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSeamlessCubemap* static_cast<Qt3DRender::QSeamlessCubemap*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSeamlessCubemap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSeamlessCubemap_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSeamlessCubemap {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QSeamlessCubemap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSeamlessCubemap>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr65(
                ptr.as_raw_ptr() as *mut crate::QSeamlessCubemap
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSeamlessCubemap> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSeamlessCubemap* dynamic_cast<Qt3DRender::QSeamlessCubemap*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSeamlessCubemap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSeamlessCubemap_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QShaderData> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderData* static_cast<Qt3DRender::QShaderData*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QShaderData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderData_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QShaderData {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QShaderData* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderData>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr16(
                ptr.as_raw_ptr() as *mut crate::QShaderData,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QShaderData {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QShaderData* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr16(
                    self as *const crate::QShaderData as *mut crate::QShaderData,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QShaderData> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderData* dynamic_cast<Qt3DRender::QShaderData*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QShaderData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderData_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QShaderData> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderData* static_cast<Qt3DRender::QShaderData*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderData_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QShaderData {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QShaderData* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderData>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr61(
                ptr.as_raw_ptr() as *mut crate::QShaderData
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QShaderData> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderData* dynamic_cast<Qt3DRender::QShaderData*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderData_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QShaderData> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderData* static_cast<Qt3DRender::QShaderData*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderData_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QShaderData {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QShaderData* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderData>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr66(
                ptr.as_raw_ptr() as *mut crate::QShaderData
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QShaderData> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderData* dynamic_cast<Qt3DRender::QShaderData*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderData> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderData_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSortPolicy> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy* static_cast<Qt3DRender::QSortPolicy*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QSortPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSortPolicy_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QSortPolicy {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSortPolicy* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSortPolicy>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr15(
                ptr.as_raw_ptr() as *mut crate::QSortPolicy,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QSortPolicy {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSortPolicy* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr15(
                    self as *const crate::QSortPolicy as *mut crate::QSortPolicy,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QSortPolicy> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy* dynamic_cast<Qt3DRender::QSortPolicy*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QSortPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSortPolicy_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSortPolicy> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy* static_cast<Qt3DRender::QSortPolicy*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSortPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSortPolicy_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QSortPolicy {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSortPolicy* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSortPolicy>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr62(
                ptr.as_raw_ptr() as *mut crate::QSortPolicy
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSortPolicy> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy* dynamic_cast<Qt3DRender::QSortPolicy*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSortPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSortPolicy_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSortPolicy> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy* static_cast<Qt3DRender::QSortPolicy*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSortPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSortPolicy_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSortPolicy {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QSortPolicy* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSortPolicy>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr67(
                ptr.as_raw_ptr() as *mut crate::QSortPolicy
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSortPolicy> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSortPolicy* dynamic_cast<Qt3DRender::QSortPolicy*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSortPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSortPolicy_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSpotLight> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* static_cast<Qt3DRender::QSpotLight*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSpotLight_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractLight> for crate::QSpotLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DRender::QSpotLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSpotLight>,
    ) -> ::cpp_core::Ptr<crate::QAbstractLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr5(
                ptr.as_raw_ptr() as *mut crate::QSpotLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QSpotLight {
    type Target = crate::QAbstractLight;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractLight* static_cast<Qt3DRender::QAbstractLight*>(Qt3DRender::QSpotLight* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractLight {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractLight_ptr5(
                    self as *const crate::QSpotLight as *mut crate::QSpotLight,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QSpotLight> for crate::QAbstractLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* dynamic_cast<Qt3DRender::QSpotLight*>(Qt3DRender::QAbstractLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractLight>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSpotLight_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSpotLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* static_cast<Qt3DRender::QSpotLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSpotLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QSpotLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QSpotLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSpotLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr17(
                ptr.as_raw_ptr() as *mut crate::QSpotLight,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSpotLight> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* dynamic_cast<Qt3DRender::QSpotLight*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSpotLight_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSpotLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* static_cast<Qt3DRender::QSpotLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSpotLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QSpotLight {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSpotLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSpotLight>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr63(
                ptr.as_raw_ptr() as *mut crate::QSpotLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSpotLight> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* dynamic_cast<Qt3DRender::QSpotLight*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSpotLight_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QSpotLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* static_cast<Qt3DRender::QSpotLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSpotLight_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSpotLight {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QSpotLight* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSpotLight>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr68(
                ptr.as_raw_ptr() as *mut crate::QSpotLight
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QSpotLight> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSpotLight* dynamic_cast<Qt3DRender::QSpotLight*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSpotLight> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSpotLight_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilMask> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilMask* static_cast<Qt3DRender::QStencilMask*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QStencilMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilMask_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QStencilMask {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QStencilMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilMask>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr18(
                ptr.as_raw_ptr() as *mut crate::QStencilMask,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStencilMask {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QStencilMask* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr18(
                    self as *const crate::QStencilMask as *mut crate::QStencilMask,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilMask> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilMask* dynamic_cast<Qt3DRender::QStencilMask*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QStencilMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilMask_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilMask> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilMask* static_cast<Qt3DRender::QStencilMask*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QStencilMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilMask_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QStencilMask {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QStencilMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilMask>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr64(
                ptr.as_raw_ptr() as *mut crate::QStencilMask
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilMask> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilMask* dynamic_cast<Qt3DRender::QStencilMask*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QStencilMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilMask_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilMask> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilMask* static_cast<Qt3DRender::QStencilMask*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilMask_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QStencilMask {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QStencilMask* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilMask>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr69(
                ptr.as_raw_ptr() as *mut crate::QStencilMask
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilMask> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilMask* dynamic_cast<Qt3DRender::QStencilMask*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilMask> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilMask_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilOperation> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperation* static_cast<Qt3DRender::QStencilOperation*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilOperation_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QStencilOperation {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QStencilOperation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilOperation>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr19(
                ptr.as_raw_ptr() as *mut crate::QStencilOperation,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStencilOperation {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QStencilOperation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr19(
                    self as *const crate::QStencilOperation as *mut crate::QStencilOperation,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilOperation> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperation* dynamic_cast<Qt3DRender::QStencilOperation*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilOperation_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilOperation> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperation* static_cast<Qt3DRender::QStencilOperation*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilOperation_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QStencilOperation {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QStencilOperation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilOperation>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr65(
                ptr.as_raw_ptr() as *mut crate::QStencilOperation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilOperation> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperation* dynamic_cast<Qt3DRender::QStencilOperation*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilOperation_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperation* static_cast<Qt3DRender::QStencilOperation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilOperation_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QStencilOperation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QStencilOperation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilOperation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr70(
                ptr.as_raw_ptr() as *mut crate::QStencilOperation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperation* dynamic_cast<Qt3DRender::QStencilOperation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilOperation_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilOperationArguments> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments* static_cast<Qt3DRender::QStencilOperationArguments*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilOperationArguments_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QStencilOperationArguments {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QStencilOperationArguments* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilOperationArguments>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr71(
                ptr.as_raw_ptr() as *mut crate::QStencilOperationArguments
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStencilOperationArguments {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QStencilOperationArguments* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr71(
                    self as *const crate::QStencilOperationArguments
                        as *mut crate::QStencilOperationArguments,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilOperationArguments> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilOperationArguments* dynamic_cast<Qt3DRender::QStencilOperationArguments*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilOperationArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilOperationArguments_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTest* static_cast<Qt3DRender::QStencilTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QStencilTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QStencilTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QStencilTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilTest>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr20(
                ptr.as_raw_ptr() as *mut crate::QStencilTest,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStencilTest {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QStencilTest* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr20(
                    self as *const crate::QStencilTest as *mut crate::QStencilTest,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilTest> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTest* dynamic_cast<Qt3DRender::QStencilTest*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QStencilTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilTest_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTest* static_cast<Qt3DRender::QStencilTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QStencilTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QStencilTest {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QStencilTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilTest>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr66(
                ptr.as_raw_ptr() as *mut crate::QStencilTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilTest> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTest* dynamic_cast<Qt3DRender::QStencilTest*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QStencilTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilTest_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTest* static_cast<Qt3DRender::QStencilTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QStencilTest {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QStencilTest* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilTest>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr72(
                ptr.as_raw_ptr() as *mut crate::QStencilTest
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilTest> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTest* dynamic_cast<Qt3DRender::QStencilTest*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilTest> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilTest_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QStencilTestArguments> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTestArguments* static_cast<Qt3DRender::QStencilTestArguments*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilTestArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QStencilTestArguments_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QStencilTestArguments {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QStencilTestArguments* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QStencilTestArguments>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr73(
                ptr.as_raw_ptr() as *mut crate::QStencilTestArguments
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QStencilTestArguments {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QStencilTestArguments* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr73(
                    self as *const crate::QStencilTestArguments
                        as *mut crate::QStencilTestArguments,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QStencilTestArguments> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QStencilTestArguments* dynamic_cast<Qt3DRender::QStencilTestArguments*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QStencilTestArguments> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QStencilTestArguments_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTechnique> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* static_cast<Qt3DRender::QTechnique*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTechnique_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTechnique {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTechnique* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTechnique>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr67(
                ptr.as_raw_ptr() as *mut crate::QTechnique
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTechnique {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTechnique* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr67(
                    self as *const crate::QTechnique as *mut crate::QTechnique,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTechnique> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* dynamic_cast<Qt3DRender::QTechnique*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTechnique_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTechnique> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* static_cast<Qt3DRender::QTechnique*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTechnique_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTechnique {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTechnique* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTechnique>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr74(
                ptr.as_raw_ptr() as *mut crate::QTechnique
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTechnique> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechnique* dynamic_cast<Qt3DRender::QTechnique*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTechnique> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTechnique_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTechniqueFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechniqueFilter* static_cast<Qt3DRender::QTechniqueFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QTechniqueFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTechniqueFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QTechniqueFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QTechniqueFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTechniqueFilter>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr16(
                ptr.as_raw_ptr() as *mut crate::QTechniqueFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTechniqueFilter {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QTechniqueFilter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr16(
                    self as *const crate::QTechniqueFilter as *mut crate::QTechniqueFilter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTechniqueFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechniqueFilter* dynamic_cast<Qt3DRender::QTechniqueFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QTechniqueFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTechniqueFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTechniqueFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechniqueFilter* static_cast<Qt3DRender::QTechniqueFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTechniqueFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTechniqueFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTechniqueFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTechniqueFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTechniqueFilter>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr68(
                ptr.as_raw_ptr() as *mut crate::QTechniqueFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTechniqueFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechniqueFilter* dynamic_cast<Qt3DRender::QTechniqueFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTechniqueFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTechniqueFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTechniqueFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechniqueFilter* static_cast<Qt3DRender::QTechniqueFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTechniqueFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTechniqueFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTechniqueFilter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTechniqueFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTechniqueFilter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr75(
                ptr.as_raw_ptr() as *mut crate::QTechniqueFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTechniqueFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTechniqueFilter* dynamic_cast<Qt3DRender::QTechniqueFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTechniqueFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTechniqueFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureWrapMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode* static_cast<Qt3DRender::QTextureWrapMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureWrapMode_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextureWrapMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureWrapMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureWrapMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr76(
                ptr.as_raw_ptr() as *mut crate::QTextureWrapMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureWrapMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureWrapMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr76(
                    self as *const crate::QTextureWrapMode as *mut crate::QTextureWrapMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureWrapMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureWrapMode* dynamic_cast<Qt3DRender::QTextureWrapMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureWrapMode_ptr(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureImage> for crate::QAbstractTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImage* static_cast<Qt3DRender::QTextureImage*>(Qt3DRender::QAbstractTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTextureImage>,
    ) -> ::cpp_core::Ptr<crate::QTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureImage_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTextureImage> for crate::QTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* static_cast<Qt3DRender::QAbstractTextureImage*>(Qt3DRender::QTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureImage>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTextureImage_ptr3(
                ptr.as_raw_ptr() as *mut crate::QTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureImage {
    type Target = crate::QAbstractTextureImage;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTextureImage* static_cast<Qt3DRender::QAbstractTextureImage*>(Qt3DRender::QTextureImage* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTextureImage {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTextureImage_ptr3(
                    self as *const crate::QTextureImage as *mut crate::QTextureImage,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureImage> for crate::QAbstractTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImage* dynamic_cast<Qt3DRender::QTextureImage*>(Qt3DRender::QAbstractTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTextureImage>,
    ) -> ::cpp_core::Ptr<crate::QTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureImage_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTextureImage,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImage* static_cast<Qt3DRender::QTextureImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTextureImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureImage>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr69(
                ptr.as_raw_ptr() as *mut crate::QTextureImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImage* dynamic_cast<Qt3DRender::QTextureImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImage* static_cast<Qt3DRender::QTextureImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureImage_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextureImage {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureImage>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr77(
                ptr.as_raw_ptr() as *mut crate::QTextureImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureImage* dynamic_cast<Qt3DRender::QTextureImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureImage_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture1D> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1D* static_cast<Qt3DRender::QTexture1D*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture1D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture1D_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTexture1D {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture1D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture1D>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr2(
                ptr.as_raw_ptr() as *mut crate::QTexture1D,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTexture1D {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture1D* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr2(
                    self as *const crate::QTexture1D as *mut crate::QTexture1D,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture1D> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1D* dynamic_cast<Qt3DRender::QTexture1D*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture1D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture1D_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture1D> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1D* static_cast<Qt3DRender::QTexture1D*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture1D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture1D_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTexture1D {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTexture1D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture1D>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr70(
                ptr.as_raw_ptr() as *mut crate::QTexture1D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture1D> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1D* dynamic_cast<Qt3DRender::QTexture1D*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture1D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture1D_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture1D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1D* static_cast<Qt3DRender::QTexture1D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture1D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture1D_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTexture1D {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTexture1D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture1D>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr78(
                ptr.as_raw_ptr() as *mut crate::QTexture1D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture1D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1D* dynamic_cast<Qt3DRender::QTexture1D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture1D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture1D_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture1DArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1DArray* static_cast<Qt3DRender::QTexture1DArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture1DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture1DArray_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTexture1DArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture1DArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture1DArray>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr3(
                ptr.as_raw_ptr() as *mut crate::QTexture1DArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTexture1DArray {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture1DArray* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr3(
                    self as *const crate::QTexture1DArray as *mut crate::QTexture1DArray,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture1DArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1DArray* dynamic_cast<Qt3DRender::QTexture1DArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture1DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture1DArray_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture1DArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1DArray* static_cast<Qt3DRender::QTexture1DArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture1DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture1DArray_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTexture1DArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTexture1DArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture1DArray>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr71(
                ptr.as_raw_ptr() as *mut crate::QTexture1DArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture1DArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1DArray* dynamic_cast<Qt3DRender::QTexture1DArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture1DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture1DArray_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture1DArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1DArray* static_cast<Qt3DRender::QTexture1DArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture1DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture1DArray_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTexture1DArray {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTexture1DArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture1DArray>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr79(
                ptr.as_raw_ptr() as *mut crate::QTexture1DArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture1DArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture1DArray* dynamic_cast<Qt3DRender::QTexture1DArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture1DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture1DArray_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2D> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2D* static_cast<Qt3DRender::QTexture2D*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2D_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTexture2D {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2D>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr4(
                ptr.as_raw_ptr() as *mut crate::QTexture2D,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTexture2D {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2D* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr4(
                    self as *const crate::QTexture2D as *mut crate::QTexture2D,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2D> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2D* dynamic_cast<Qt3DRender::QTexture2D*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2D_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2D> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2D* static_cast<Qt3DRender::QTexture2D*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2D_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTexture2D {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTexture2D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2D>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr72(
                ptr.as_raw_ptr() as *mut crate::QTexture2D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2D> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2D* dynamic_cast<Qt3DRender::QTexture2D*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2D_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2D* static_cast<Qt3DRender::QTexture2D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2D_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTexture2D {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTexture2D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2D>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr80(
                ptr.as_raw_ptr() as *mut crate::QTexture2D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2D* dynamic_cast<Qt3DRender::QTexture2D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2D_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DArray* static_cast<Qt3DRender::QTexture2DArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DArray_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTexture2DArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2DArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DArray>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr5(
                ptr.as_raw_ptr() as *mut crate::QTexture2DArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTexture2DArray {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2DArray* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr5(
                    self as *const crate::QTexture2DArray as *mut crate::QTexture2DArray,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DArray* dynamic_cast<Qt3DRender::QTexture2DArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DArray_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DArray* static_cast<Qt3DRender::QTexture2DArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DArray_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTexture2DArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTexture2DArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DArray>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr73(
                ptr.as_raw_ptr() as *mut crate::QTexture2DArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DArray* dynamic_cast<Qt3DRender::QTexture2DArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DArray_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DArray* static_cast<Qt3DRender::QTexture2DArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DArray_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTexture2DArray {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTexture2DArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DArray>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr81(
                ptr.as_raw_ptr() as *mut crate::QTexture2DArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DArray* dynamic_cast<Qt3DRender::QTexture2DArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DArray_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture3D> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture3D* static_cast<Qt3DRender::QTexture3D*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture3D_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTexture3D {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture3D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture3D>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr6(
                ptr.as_raw_ptr() as *mut crate::QTexture3D,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTexture3D {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture3D* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr6(
                    self as *const crate::QTexture3D as *mut crate::QTexture3D,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture3D> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture3D* dynamic_cast<Qt3DRender::QTexture3D*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture3D_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture3D> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture3D* static_cast<Qt3DRender::QTexture3D*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture3D_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTexture3D {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTexture3D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture3D>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr74(
                ptr.as_raw_ptr() as *mut crate::QTexture3D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture3D> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture3D* dynamic_cast<Qt3DRender::QTexture3D*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture3D_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture3D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture3D* static_cast<Qt3DRender::QTexture3D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture3D_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTexture3D {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTexture3D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture3D>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr82(
                ptr.as_raw_ptr() as *mut crate::QTexture3D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture3D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture3D* dynamic_cast<Qt3DRender::QTexture3D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture3D_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureCubeMap> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMap* static_cast<Qt3DRender::QTextureCubeMap*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureCubeMap_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTextureCubeMap {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureCubeMap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureCubeMap>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr7(
                ptr.as_raw_ptr() as *mut crate::QTextureCubeMap,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureCubeMap {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureCubeMap* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr7(
                    self as *const crate::QTextureCubeMap as *mut crate::QTextureCubeMap,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureCubeMap> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMap* dynamic_cast<Qt3DRender::QTextureCubeMap*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureCubeMap_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureCubeMap> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMap* static_cast<Qt3DRender::QTextureCubeMap*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureCubeMap_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTextureCubeMap {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTextureCubeMap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureCubeMap>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr75(
                ptr.as_raw_ptr() as *mut crate::QTextureCubeMap
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureCubeMap> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMap* dynamic_cast<Qt3DRender::QTextureCubeMap*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureCubeMap_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureCubeMap> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMap* static_cast<Qt3DRender::QTextureCubeMap*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureCubeMap_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextureCubeMap {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureCubeMap* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureCubeMap>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr83(
                ptr.as_raw_ptr() as *mut crate::QTextureCubeMap
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureCubeMap> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMap* dynamic_cast<Qt3DRender::QTextureCubeMap*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMap> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureCubeMap_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureCubeMapArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMapArray* static_cast<Qt3DRender::QTextureCubeMapArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureCubeMapArray_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTextureCubeMapArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureCubeMapArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureCubeMapArray>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr8(
                ptr.as_raw_ptr() as *mut crate::QTextureCubeMapArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureCubeMapArray {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureCubeMapArray* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr8(
                    self as *const crate::QTextureCubeMapArray as *mut crate::QTextureCubeMapArray,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureCubeMapArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMapArray* dynamic_cast<Qt3DRender::QTextureCubeMapArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureCubeMapArray_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureCubeMapArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMapArray* static_cast<Qt3DRender::QTextureCubeMapArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureCubeMapArray_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTextureCubeMapArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTextureCubeMapArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureCubeMapArray>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr76(
                ptr.as_raw_ptr() as *mut crate::QTextureCubeMapArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureCubeMapArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMapArray* dynamic_cast<Qt3DRender::QTextureCubeMapArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureCubeMapArray_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureCubeMapArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMapArray* static_cast<Qt3DRender::QTextureCubeMapArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureCubeMapArray_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextureCubeMapArray {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureCubeMapArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureCubeMapArray>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr84(
                ptr.as_raw_ptr() as *mut crate::QTextureCubeMapArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureCubeMapArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureCubeMapArray* dynamic_cast<Qt3DRender::QTextureCubeMapArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureCubeMapArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureCubeMapArray_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DMultisample> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisample* static_cast<Qt3DRender::QTexture2DMultisample*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DMultisample_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTexture2DMultisample {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2DMultisample* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DMultisample>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr9(
                ptr.as_raw_ptr() as *mut crate::QTexture2DMultisample,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTexture2DMultisample {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2DMultisample* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr9(
                    self as *const crate::QTexture2DMultisample
                        as *mut crate::QTexture2DMultisample,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DMultisample> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisample* dynamic_cast<Qt3DRender::QTexture2DMultisample*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DMultisample_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DMultisample> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisample* static_cast<Qt3DRender::QTexture2DMultisample*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DMultisample_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTexture2DMultisample {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTexture2DMultisample* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DMultisample>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr77(
                ptr.as_raw_ptr() as *mut crate::QTexture2DMultisample
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DMultisample> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisample* dynamic_cast<Qt3DRender::QTexture2DMultisample*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DMultisample_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DMultisample> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisample* static_cast<Qt3DRender::QTexture2DMultisample*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DMultisample_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTexture2DMultisample {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTexture2DMultisample* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DMultisample>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr85(
                ptr.as_raw_ptr() as *mut crate::QTexture2DMultisample
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DMultisample> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisample* dynamic_cast<Qt3DRender::QTexture2DMultisample*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisample> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DMultisample_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DMultisampleArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisampleArray* static_cast<Qt3DRender::QTexture2DMultisampleArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DMultisampleArray_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTexture2DMultisampleArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2DMultisampleArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DMultisampleArray>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr10(
                ptr.as_raw_ptr() as *mut crate::QTexture2DMultisampleArray,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTexture2DMultisampleArray {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTexture2DMultisampleArray* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr10(
                    self as *const crate::QTexture2DMultisampleArray
                        as *mut crate::QTexture2DMultisampleArray,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DMultisampleArray> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisampleArray* dynamic_cast<Qt3DRender::QTexture2DMultisampleArray*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DMultisampleArray_ptr(ptr.as_raw_ptr() as *mut crate::QAbstractTexture)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DMultisampleArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisampleArray* static_cast<Qt3DRender::QTexture2DMultisampleArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DMultisampleArray_ptr1(ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTexture2DMultisampleArray {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTexture2DMultisampleArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DMultisampleArray>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr78(
                ptr.as_raw_ptr() as *mut crate::QTexture2DMultisampleArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DMultisampleArray> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisampleArray* dynamic_cast<Qt3DRender::QTexture2DMultisampleArray*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DMultisampleArray_ptr1(ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTexture2DMultisampleArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisampleArray* static_cast<Qt3DRender::QTexture2DMultisampleArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTexture2DMultisampleArray_ptr2(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTexture2DMultisampleArray {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTexture2DMultisampleArray* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTexture2DMultisampleArray>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr86(
                ptr.as_raw_ptr() as *mut crate::QTexture2DMultisampleArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTexture2DMultisampleArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTexture2DMultisampleArray* dynamic_cast<Qt3DRender::QTexture2DMultisampleArray*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTexture2DMultisampleArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTexture2DMultisampleArray_ptr2(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureRectangle> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureRectangle* static_cast<Qt3DRender::QTextureRectangle*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureRectangle_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTextureRectangle {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureRectangle* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureRectangle>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr11(
                ptr.as_raw_ptr() as *mut crate::QTextureRectangle,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureRectangle {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureRectangle* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr11(
                    self as *const crate::QTextureRectangle as *mut crate::QTextureRectangle,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureRectangle> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureRectangle* dynamic_cast<Qt3DRender::QTextureRectangle*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureRectangle_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureRectangle> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureRectangle* static_cast<Qt3DRender::QTextureRectangle*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureRectangle_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTextureRectangle {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTextureRectangle* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureRectangle>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr79(
                ptr.as_raw_ptr() as *mut crate::QTextureRectangle
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureRectangle> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureRectangle* dynamic_cast<Qt3DRender::QTextureRectangle*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureRectangle_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureRectangle> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureRectangle* static_cast<Qt3DRender::QTextureRectangle*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureRectangle_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextureRectangle {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureRectangle* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureRectangle>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr87(
                ptr.as_raw_ptr() as *mut crate::QTextureRectangle
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureRectangle> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureRectangle* dynamic_cast<Qt3DRender::QTextureRectangle*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureRectangle> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureRectangle_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureBuffer> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureBuffer* static_cast<Qt3DRender::QTextureBuffer*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureBuffer_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTextureBuffer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureBuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureBuffer>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr12(
                ptr.as_raw_ptr() as *mut crate::QTextureBuffer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureBuffer {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureBuffer* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr12(
                    self as *const crate::QTextureBuffer as *mut crate::QTextureBuffer,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureBuffer> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureBuffer* dynamic_cast<Qt3DRender::QTextureBuffer*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureBuffer_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureBuffer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureBuffer* static_cast<Qt3DRender::QTextureBuffer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureBuffer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTextureBuffer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTextureBuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureBuffer>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr80(
                ptr.as_raw_ptr() as *mut crate::QTextureBuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureBuffer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureBuffer* dynamic_cast<Qt3DRender::QTextureBuffer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureBuffer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureBuffer* static_cast<Qt3DRender::QTextureBuffer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureBuffer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextureBuffer {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureBuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureBuffer>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr88(
                ptr.as_raw_ptr() as *mut crate::QTextureBuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureBuffer* dynamic_cast<Qt3DRender::QTextureBuffer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureBuffer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureLoader> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureLoader* static_cast<Qt3DRender::QTextureLoader*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureLoader_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QTextureLoader {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureLoader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureLoader>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr13(
                ptr.as_raw_ptr() as *mut crate::QTextureLoader,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureLoader {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QTextureLoader* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr13(
                    self as *const crate::QTextureLoader as *mut crate::QTextureLoader,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureLoader> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureLoader* dynamic_cast<Qt3DRender::QTextureLoader*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QTextureLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureLoader_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureLoader> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureLoader* static_cast<Qt3DRender::QTextureLoader*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureLoader_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QTextureLoader {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QTextureLoader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureLoader>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr81(
                ptr.as_raw_ptr() as *mut crate::QTextureLoader
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureLoader> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureLoader* dynamic_cast<Qt3DRender::QTextureLoader*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QTextureLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureLoader_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureLoader> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureLoader* static_cast<Qt3DRender::QTextureLoader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureLoader_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QTextureLoader {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QTextureLoader* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureLoader>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr89(
                ptr.as_raw_ptr() as *mut crate::QTextureLoader
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureLoader> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureLoader* dynamic_cast<Qt3DRender::QTextureLoader*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QTextureLoader> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureLoader_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QTextureGenerator> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureGenerator* static_cast<Qt3DRender::QTextureGenerator*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QTextureGenerator> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QTextureGenerator_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractFunctor,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QAbstractFunctor> for crate::QTextureGenerator {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QTextureGenerator* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QTextureGenerator>,
    ) -> ::cpp_core::Ptr<crate::QAbstractFunctor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr3(
                ptr.as_raw_ptr() as *mut crate::QTextureGenerator,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QTextureGenerator {
    type Target = crate::QAbstractFunctor;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractFunctor* static_cast<Qt3DRender::QAbstractFunctor*>(Qt3DRender::QTextureGenerator* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractFunctor {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractFunctor_ptr3(
                    self as *const crate::QTextureGenerator as *mut crate::QTextureGenerator,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QTextureGenerator> for crate::QAbstractFunctor {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QTextureGenerator* dynamic_cast<Qt3DRender::QTextureGenerator*>(Qt3DRender::QAbstractFunctor* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractFunctor>,
    ) -> ::cpp_core::Ptr<crate::QTextureGenerator> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QTextureGenerator_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractFunctor,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QViewport> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QViewport* static_cast<Qt3DRender::QViewport*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QViewport_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QViewport {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QViewport* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QViewport>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr17(
                ptr.as_raw_ptr() as *mut crate::QViewport,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::QViewport {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QViewport* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr17(
                    self as *const crate::QViewport as *mut crate::QViewport,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::QViewport> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QViewport* dynamic_cast<Qt3DRender::QViewport*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QViewport_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QViewport> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QViewport* static_cast<Qt3DRender::QViewport*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QViewport_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QViewport {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QViewport* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QViewport>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr82(
                ptr.as_raw_ptr() as *mut crate::QViewport
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QViewport> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QViewport* dynamic_cast<Qt3DRender::QViewport*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QViewport_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::QViewport> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QViewport* static_cast<Qt3DRender::QViewport*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QViewport_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QViewport {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QViewport* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QViewport>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr90(
                ptr.as_raw_ptr() as *mut crate::QViewport
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::DynamicCast<crate::QViewport> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QViewport* dynamic_cast<Qt3DRender::QViewport*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QViewport> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QViewport_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QRayCasterHit {
    /// <p>Destroys the instance of QRayCasterHit.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void Qt3DRender::QRayCasterHit::~QRayCasterHit()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qraycasterhit.html#dtor.QRayCasterHit">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QRayCasterHit.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCasterHit_dQRayCasterHit(
            self as *const crate::QRayCasterHit as *mut crate::QRayCasterHit,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QAbstractRayCaster::~QAbstractRayCaster()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QAbstractRayCaster_dQAbstractRayCaster(
            self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QBlitFramebuffer {
    /// <p>Destructor.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QBlitFramebuffer::~QBlitFramebuffer()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qblitframebuffer.html#dtor.QBlitFramebuffer">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destructor.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QBlitFramebuffer_dQBlitFramebuffer(
            self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QLineWidth {
    /// <p>Destroys the instance of QLineWidth. The destructor is virtual.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QLineWidth::~QLineWidth()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qlinewidth.html#dtor.QLineWidth">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QLineWidth. The destructor is virtual.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QLineWidth_dQLineWidth(
            self as *const crate::QLineWidth as *mut crate::QLineWidth,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QPickLineEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPickLineEvent::~QPickLineEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickLineEvent_dQPickLineEvent(
            self as *const crate::QPickLineEvent as *mut crate::QPickLineEvent,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QPickPointEvent {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QPickPointEvent::~QPickPointEvent()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QPickPointEvent_dQPickPointEvent(
            self as *const crate::QPickPointEvent as *mut crate::QPickPointEvent,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QProximityFilter {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QProximityFilter::~QProximityFilter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QProximityFilter_dQProximityFilter(
            self as *const crate::QProximityFilter as *mut crate::QProximityFilter,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QRayCaster {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRayCaster::~QRayCaster()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRayCaster_dQRayCaster(
            self as *const crate::QRayCaster as *mut crate::QRayCaster,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QScreenRayCaster {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QScreenRayCaster::~QScreenRayCaster()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QScreenRayCaster_dQScreenRayCaster(
            self as *const crate::QScreenRayCaster as *mut crate::QScreenRayCaster,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QShaderProgramBuilder {
    /// <p>Destroys the instance of QShaderProgramBuilder. The destructor is virtual.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QShaderProgramBuilder::~QShaderProgramBuilder()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qt3drender-qshaderprogrambuilder.html#dtor.QShaderProgramBuilder">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the instance of QShaderProgramBuilder. The destructor is virtual.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderProgramBuilder_dQShaderProgramBuilder(
            self as *const crate::QShaderProgramBuilder as *mut crate::QShaderProgramBuilder,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QVectorOfQRayCasterHit {
    /// <p>Destroys the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```[destructor] void QVector<Qt3DRender::QRayCasterHit>::~QVector()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#dtor.QVector">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Destroys the vector.</p></div>
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_dQVector(
            self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::vector_ops::Size for crate::QVectorOfQRayCasterHit {
    /// <p>Returns the number of items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```int QVector<Qt3DRender::QRayCasterHit>::size() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#size">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns the number of items in the vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#isEmpty">isEmpty</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#resize">resize</a>().</p></div>
    #[inline(always)]
    unsafe fn size(&self) -> usize {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_size(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ffi_result as usize
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::vector_ops::DataMut for crate::QVectorOfQRayCasterHit {
    type Output = ::cpp_core::Ptr<crate::QRayCasterHit>;
    /// <p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCasterHit* QVector<Qt3DRender::QRayCasterHit>::data()```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a pointer to the data stored in the vector. The pointer can be used to access and modify the items in the vector.</p>
    /// <p>Example:</p>
    /// <pre class="cpp">
    ///
    ///   <span class="type"><a href="http://doc.qt.io/qt-5/qvector.html#QVector">QVector</a></span><span class="operator">&lt;</span><span class="type">int</span><span class="operator">&gt;</span> vector(<span class="number">10</span>);
    ///   <span class="type">int</span> <span class="operator">*</span>data <span class="operator">=</span> vector<span class="operator">.</span>data();
    ///   <span class="keyword">for</span> (<span class="type">int</span> i <span class="operator">=</span> <span class="number">0</span>; i <span class="operator">&lt;</span> <span class="number">10</span>; <span class="operator">+</span><span class="operator">+</span>i)
    /// &#32;     data<span class="operator">[</span>i<span class="operator">]</span> <span class="operator">=</span> <span class="number">2</span> <span class="operator">*</span> i;
    ///
    /// </pre>
    /// <p>The pointer remains valid as long as the vector isn't reallocated.</p>
    /// <p>This function is mostly useful to pass a vector to a function that accepts a plain C++ array.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#constData">constData</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-5b-5d">operator[]</a>().</p></div>
    #[inline(always)]
    unsafe fn data_mut(&self) -> ::cpp_core::Ptr<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_data(
                self as *const crate::QVectorOfQRayCasterHit as *mut crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::vector_ops::Data for crate::QVectorOfQRayCasterHit {
    type Output = ::cpp_core::Ptr<crate::QRayCasterHit>;
    /// <p>This is an overloaded function.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```const Qt3DRender::QRayCasterHit* QVector<Qt3DRender::QRayCasterHit>::data() const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#data-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>This is an overloaded function.</p></div>
    #[inline(always)]
    unsafe fn data(&self) -> ::cpp_core::Ptr<crate::QRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_data1(
                self as *const crate::QVectorOfQRayCasterHit,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result as *mut crate::QRayCasterHit)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Add<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>
    for &crate::QVectorOfQRayCasterHit
{
    type Output = ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit>;
    /// <p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit> QVector<Qt3DRender::QRayCasterHit>::operator+(const QVector<Qt3DRender::QRayCasterHit>& l) const```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Returns a vector that contains all the items in this vector followed by all the items in the <i>other</i> vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn add(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRayCasterHit>,
    ) -> ::cpp_core::CppBox<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator_2(
                    self as *const crate::QVectorOfQRayCasterHit,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe {
            ::cpp_core::CppBox::from_raw(ffi_result).expect("attempted to construct a null CppBox")
        }
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Shl<::cpp_core::Ref<crate::QRayCasterHit>> for &crate::QVectorOfQRayCasterHit {
    type Output = ::cpp_core::Ref<crate::QVectorOfQRayCasterHit>;
    /// <p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>& QVector<Qt3DRender::QRayCasterHit>::operator<<(const Qt3DRender::QRayCasterHit& t)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>value</i> to the vector and returns a reference to this vector.</p>
    /// <p><b>See also </b><a href="http://doc.qt.io/qt-5/qvector.html#append">append</a>() and <a href="http://doc.qt.io/qt-5/qvector.html#operator-2b-eq">operator+=</a>().</p></div>
    #[inline(always)]
    fn shl(
        self,
        t: ::cpp_core::Ref<crate::QRayCasterHit>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator__6(
                    self as *const crate::QVectorOfQRayCasterHit
                        as *mut crate::QVectorOfQRayCasterHit,
                    t.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Shl<::cpp_core::Ref<crate::QVectorOfQRayCasterHit>>
    for &crate::QVectorOfQRayCasterHit
{
    type Output = ::cpp_core::Ref<crate::QVectorOfQRayCasterHit>;
    /// <p>Appends <i>other</i> to the vector and returns a reference to the vector.</p>
    ///
    /// Calls C++ function: <span style='color: green;'>```QVector<Qt3DRender::QRayCasterHit>& QVector<Qt3DRender::QRayCasterHit>::operator<<(const QVector<Qt3DRender::QRayCasterHit>& l)```</span>.
    ///
    /// <a href="http://doc.qt.io/qt-5/qvector.html#operator-lt-lt-1">C++ documentation</a>:<div style='border: 1px solid #5CFF95; background: #D6FFE4; padding: 16px;'><p>Appends <i>other</i> to the vector and returns a reference to the vector.</p></div>
    #[inline(always)]
    fn shl(
        self,
        l: ::cpp_core::Ref<crate::QVectorOfQRayCasterHit>,
    ) -> ::cpp_core::Ref<crate::QVectorOfQRayCasterHit> {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_QVector_Qt3DRender_QRayCasterHit_operator__7(
                    self as *const crate::QVectorOfQRayCasterHit
                        as *mut crate::QVectorOfQRayCasterHit,
                    l.as_raw_ptr(),
                )
            }
        };
        unsafe { ::cpp_core::Ref::from_raw(ffi_result).expect("attempted to construct a null Ref") }
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QAbstractRayCaster> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* static_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractRayCaster_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr36(
                ptr.as_raw_ptr() as *mut crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QAbstractRayCaster {
    type Target = ::qt_3d_core::QComponent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QComponent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr36(
                    self as *const crate::QAbstractRayCaster as *mut crate::QAbstractRayCaster,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QAbstractRayCaster> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* dynamic_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractRayCaster_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QAbstractRayCaster> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* static_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractRayCaster_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr166(
                ptr.as_raw_ptr() as *mut crate::QAbstractRayCaster
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QAbstractRayCaster> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* dynamic_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractRayCaster_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QAbstractRayCaster> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* static_cast<Qt3DRender::QAbstractRayCaster*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractRayCaster_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr302(
                ptr.as_raw_ptr() as *mut crate::QAbstractRayCaster
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QAbstractRayCaster> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* dynamic_cast<Qt3DRender::QAbstractRayCaster*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QAbstractRayCaster_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QBlitFramebuffer> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer* static_cast<Qt3DRender::QBlitFramebuffer*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QBlitFramebuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlitFramebuffer_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QBlitFramebuffer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QBlitFramebuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlitFramebuffer>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr36(
                ptr.as_raw_ptr() as *mut crate::QBlitFramebuffer,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QBlitFramebuffer {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QBlitFramebuffer* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr36(
                    self as *const crate::QBlitFramebuffer as *mut crate::QBlitFramebuffer,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QBlitFramebuffer> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer* dynamic_cast<Qt3DRender::QBlitFramebuffer*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QBlitFramebuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlitFramebuffer_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QBlitFramebuffer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer* static_cast<Qt3DRender::QBlitFramebuffer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBlitFramebuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlitFramebuffer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QBlitFramebuffer {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QBlitFramebuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlitFramebuffer>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr167(
                ptr.as_raw_ptr() as *mut crate::QBlitFramebuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QBlitFramebuffer> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer* dynamic_cast<Qt3DRender::QBlitFramebuffer*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QBlitFramebuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlitFramebuffer_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QBlitFramebuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer* static_cast<Qt3DRender::QBlitFramebuffer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBlitFramebuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QBlitFramebuffer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QBlitFramebuffer {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QBlitFramebuffer* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QBlitFramebuffer>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr303(
                ptr.as_raw_ptr() as *mut crate::QBlitFramebuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QBlitFramebuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QBlitFramebuffer* dynamic_cast<Qt3DRender::QBlitFramebuffer*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QBlitFramebuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QBlitFramebuffer_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QLineWidth> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLineWidth* static_cast<Qt3DRender::QLineWidth*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QLineWidth> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLineWidth_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QLineWidth {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QLineWidth* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLineWidth>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr42(
                ptr.as_raw_ptr() as *mut crate::QLineWidth,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QLineWidth {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QLineWidth* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr42(
                    self as *const crate::QLineWidth as *mut crate::QLineWidth,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QLineWidth> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLineWidth* dynamic_cast<Qt3DRender::QLineWidth*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QLineWidth> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLineWidth_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QLineWidth> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLineWidth* static_cast<Qt3DRender::QLineWidth*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLineWidth> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLineWidth_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QLineWidth {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QLineWidth* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLineWidth>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr168(
                ptr.as_raw_ptr() as *mut crate::QLineWidth
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QLineWidth> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLineWidth* dynamic_cast<Qt3DRender::QLineWidth*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QLineWidth> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLineWidth_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QLineWidth> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLineWidth* static_cast<Qt3DRender::QLineWidth*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLineWidth> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QLineWidth_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QLineWidth {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QLineWidth* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QLineWidth>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr304(
                ptr.as_raw_ptr() as *mut crate::QLineWidth
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QLineWidth> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QLineWidth* dynamic_cast<Qt3DRender::QLineWidth*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QLineWidth> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QLineWidth_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QPickLineEvent> for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickLineEvent* static_cast<Qt3DRender::QPickLineEvent*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPickEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickLineEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickLineEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QPickEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QPickEvent> for crate::QPickLineEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* static_cast<Qt3DRender::QPickEvent*>(Qt3DRender::QPickLineEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickLineEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickEvent_ptr4(
                ptr.as_raw_ptr() as *mut crate::QPickLineEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QPickLineEvent {
    type Target = crate::QPickEvent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* static_cast<Qt3DRender::QPickEvent*>(Qt3DRender::QPickLineEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPickEvent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickEvent_ptr4(
                    self as *const crate::QPickLineEvent as *mut crate::QPickLineEvent,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QPickLineEvent> for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickLineEvent* dynamic_cast<Qt3DRender::QPickLineEvent*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPickEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickLineEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickLineEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QPickEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QPickLineEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickLineEvent* static_cast<Qt3DRender::QPickLineEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickLineEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickLineEvent_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPickLineEvent {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPickLineEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickLineEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr305(
                ptr.as_raw_ptr() as *mut crate::QPickLineEvent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QPickLineEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickLineEvent* dynamic_cast<Qt3DRender::QPickLineEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickLineEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickLineEvent_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QPickPointEvent> for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickPointEvent* static_cast<Qt3DRender::QPickPointEvent*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QPickEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickPointEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickPointEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QPickEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QPickEvent> for crate::QPickPointEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* static_cast<Qt3DRender::QPickEvent*>(Qt3DRender::QPickPointEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickPointEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickEvent_ptr5(
                ptr.as_raw_ptr() as *mut crate::QPickPointEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QPickPointEvent {
    type Target = crate::QPickEvent;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickEvent* static_cast<Qt3DRender::QPickEvent*>(Qt3DRender::QPickPointEvent* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QPickEvent {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickEvent_ptr5(
                    self as *const crate::QPickPointEvent as *mut crate::QPickPointEvent,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QPickPointEvent> for crate::QPickEvent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickPointEvent* dynamic_cast<Qt3DRender::QPickPointEvent*>(Qt3DRender::QPickEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QPickEvent>,
    ) -> ::cpp_core::Ptr<crate::QPickPointEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickPointEvent_ptr(
                ptr.as_raw_ptr() as *mut crate::QPickEvent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QPickPointEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickPointEvent* static_cast<Qt3DRender::QPickPointEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickPointEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QPickPointEvent_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QPickPointEvent {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QPickPointEvent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QPickPointEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr306(
                ptr.as_raw_ptr() as *mut crate::QPickPointEvent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QPickPointEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QPickPointEvent* dynamic_cast<Qt3DRender::QPickPointEvent*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QPickPointEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QPickPointEvent_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QProximityFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QProximityFilter* static_cast<Qt3DRender::QProximityFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QProximityFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QProximityFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QProximityFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QProximityFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QProximityFilter>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr37(
                ptr.as_raw_ptr() as *mut crate::QProximityFilter,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QProximityFilter {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QProximityFilter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr37(
                    self as *const crate::QProximityFilter as *mut crate::QProximityFilter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QProximityFilter> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QProximityFilter* dynamic_cast<Qt3DRender::QProximityFilter*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QProximityFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QProximityFilter_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QProximityFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QProximityFilter* static_cast<Qt3DRender::QProximityFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QProximityFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QProximityFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QProximityFilter {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QProximityFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QProximityFilter>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr169(
                ptr.as_raw_ptr() as *mut crate::QProximityFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QProximityFilter> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QProximityFilter* dynamic_cast<Qt3DRender::QProximityFilter*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QProximityFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QProximityFilter_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QProximityFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QProximityFilter* static_cast<Qt3DRender::QProximityFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QProximityFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QProximityFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QProximityFilter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QProximityFilter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QProximityFilter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr307(
                ptr.as_raw_ptr() as *mut crate::QProximityFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QProximityFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QProximityFilter* dynamic_cast<Qt3DRender::QProximityFilter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QProximityFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QProximityFilter_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QRayCaster> for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* static_cast<Qt3DRender::QRayCaster*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractRayCaster>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRayCaster_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QAbstractRayCaster> for crate::QRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* static_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DRender::QRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRayCaster>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractRayCaster_ptr3(
                ptr.as_raw_ptr() as *mut crate::QRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QRayCaster {
    type Target = crate::QAbstractRayCaster;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* static_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DRender::QRayCaster* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractRayCaster {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractRayCaster_ptr3(
                    self as *const crate::QRayCaster as *mut crate::QRayCaster,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QRayCaster> for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* dynamic_cast<Qt3DRender::QRayCaster*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractRayCaster>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRayCaster_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QRayCaster> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* static_cast<Qt3DRender::QRayCaster*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRayCaster_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr37(
                ptr.as_raw_ptr() as *mut crate::QRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QRayCaster> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* dynamic_cast<Qt3DRender::QRayCaster*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRayCaster_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QRayCaster> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* static_cast<Qt3DRender::QRayCaster*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRayCaster_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr170(
                ptr.as_raw_ptr() as *mut crate::QRayCaster
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QRayCaster> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* dynamic_cast<Qt3DRender::QRayCaster*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRayCaster_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QRayCaster> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* static_cast<Qt3DRender::QRayCaster*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRayCaster_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRayCaster {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr308(
                ptr.as_raw_ptr() as *mut crate::QRayCaster
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QRayCaster> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRayCaster* dynamic_cast<Qt3DRender::QRayCaster*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRayCaster_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QScreenRayCaster> for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* static_cast<Qt3DRender::QScreenRayCaster*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractRayCaster>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QScreenRayCaster_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QAbstractRayCaster> for crate::QScreenRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* static_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DRender::QScreenRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScreenRayCaster>,
    ) -> ::cpp_core::Ptr<crate::QAbstractRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractRayCaster_ptr4(
                ptr.as_raw_ptr() as *mut crate::QScreenRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QScreenRayCaster {
    type Target = crate::QAbstractRayCaster;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractRayCaster* static_cast<Qt3DRender::QAbstractRayCaster*>(Qt3DRender::QScreenRayCaster* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractRayCaster {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractRayCaster_ptr4(
                    self as *const crate::QScreenRayCaster as *mut crate::QScreenRayCaster,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QScreenRayCaster> for crate::QAbstractRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* dynamic_cast<Qt3DRender::QScreenRayCaster*>(Qt3DRender::QAbstractRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractRayCaster>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QScreenRayCaster_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QScreenRayCaster> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* static_cast<Qt3DRender::QScreenRayCaster*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QScreenRayCaster_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QComponent> for crate::QScreenRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QComponent* static_cast<Qt3DCore::QComponent*>(Qt3DRender::QScreenRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScreenRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QComponent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QComponent_ptr38(
                ptr.as_raw_ptr() as *mut crate::QScreenRayCaster,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QScreenRayCaster> for ::qt_3d_core::QComponent {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* dynamic_cast<Qt3DRender::QScreenRayCaster*>(Qt3DCore::QComponent* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QComponent>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QScreenRayCaster_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QComponent,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QScreenRayCaster> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* static_cast<Qt3DRender::QScreenRayCaster*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QScreenRayCaster_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QScreenRayCaster {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QScreenRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScreenRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr171(
                ptr.as_raw_ptr() as *mut crate::QScreenRayCaster
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QScreenRayCaster> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* dynamic_cast<Qt3DRender::QScreenRayCaster*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QScreenRayCaster_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QScreenRayCaster> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* static_cast<Qt3DRender::QScreenRayCaster*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QScreenRayCaster_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QScreenRayCaster {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QScreenRayCaster* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QScreenRayCaster>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr309(
                ptr.as_raw_ptr() as *mut crate::QScreenRayCaster
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QScreenRayCaster> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QScreenRayCaster* dynamic_cast<Qt3DRender::QScreenRayCaster*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QScreenRayCaster> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QScreenRayCaster_ptr3(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QShaderProgramBuilder> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgramBuilder* static_cast<Qt3DRender::QShaderProgramBuilder*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgramBuilder> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderProgramBuilder_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QShaderProgramBuilder {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QShaderProgramBuilder* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderProgramBuilder>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr172(
                ptr.as_raw_ptr() as *mut crate::QShaderProgramBuilder
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QShaderProgramBuilder {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QShaderProgramBuilder* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr172(
                    self as *const crate::QShaderProgramBuilder
                        as *mut crate::QShaderProgramBuilder,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QShaderProgramBuilder> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgramBuilder* dynamic_cast<Qt3DRender::QShaderProgramBuilder*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgramBuilder> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderProgramBuilder_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QShaderProgramBuilder> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgramBuilder* static_cast<Qt3DRender::QShaderProgramBuilder*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgramBuilder> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderProgramBuilder_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QShaderProgramBuilder {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QShaderProgramBuilder* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderProgramBuilder>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr310(
                ptr.as_raw_ptr() as *mut crate::QShaderProgramBuilder
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0",
        cpp_lib_version = "5.14.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QShaderProgramBuilder> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderProgramBuilder* dynamic_cast<Qt3DRender::QShaderProgramBuilder*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderProgramBuilder> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderProgramBuilder_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QSetFence {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QSetFence::~QSetFence()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSetFence_dQSetFence(
            self as *const crate::QSetFence as *mut crate::QSetFence,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QSharedGLTexture {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QSharedGLTexture::~QSharedGLTexture()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSharedGLTexture_dQSharedGLTexture(
            self as *const crate::QSharedGLTexture as *mut crate::QSharedGLTexture,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::QWaitFence {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QWaitFence::~QWaitFence()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QWaitFence_dQWaitFence(
            self as *const crate::QWaitFence as *mut crate::QWaitFence,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QSetFence> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QSetFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSetFence_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QSetFence {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSetFence* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSetFence>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr40(
                ptr.as_raw_ptr() as *mut crate::QSetFence,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QSetFence {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSetFence* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr40(
                    self as *const crate::QSetFence as *mut crate::QSetFence,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QSetFence> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QSetFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSetFence_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QSetFence> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSetFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSetFence_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QSetFence {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSetFence* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSetFence>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr180(
                ptr.as_raw_ptr() as *mut crate::QSetFence
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QSetFence> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSetFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSetFence_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QSetFence> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSetFence* static_cast<Qt3DRender::QSetFence*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSetFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSetFence_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSetFence {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QSetFence* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSetFence>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr328(
                ptr.as_raw_ptr() as *mut crate::QSetFence
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QSetFence> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSetFence* dynamic_cast<Qt3DRender::QSetFence*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSetFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSetFence_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QSharedGLTexture> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSharedGLTexture* static_cast<Qt3DRender::QSharedGLTexture*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QSharedGLTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSharedGLTexture_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QAbstractTexture> for crate::QSharedGLTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QSharedGLTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSharedGLTexture>,
    ) -> ::cpp_core::Ptr<crate::QAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr28(
                ptr.as_raw_ptr() as *mut crate::QSharedGLTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QSharedGLTexture {
    type Target = crate::QAbstractTexture;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QAbstractTexture* static_cast<Qt3DRender::QAbstractTexture*>(Qt3DRender::QSharedGLTexture* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QAbstractTexture {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QAbstractTexture_ptr28(
                    self as *const crate::QSharedGLTexture as *mut crate::QSharedGLTexture,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QSharedGLTexture> for crate::QAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSharedGLTexture* dynamic_cast<Qt3DRender::QSharedGLTexture*>(Qt3DRender::QAbstractTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QAbstractTexture>,
    ) -> ::cpp_core::Ptr<crate::QSharedGLTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSharedGLTexture_ptr(
                ptr.as_raw_ptr() as *mut crate::QAbstractTexture,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QSharedGLTexture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSharedGLTexture* static_cast<Qt3DRender::QSharedGLTexture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSharedGLTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSharedGLTexture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QSharedGLTexture {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSharedGLTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSharedGLTexture>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr181(
                ptr.as_raw_ptr() as *mut crate::QSharedGLTexture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QSharedGLTexture> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSharedGLTexture* dynamic_cast<Qt3DRender::QSharedGLTexture*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSharedGLTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSharedGLTexture_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QSharedGLTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSharedGLTexture* static_cast<Qt3DRender::QSharedGLTexture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSharedGLTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSharedGLTexture_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSharedGLTexture {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QSharedGLTexture* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSharedGLTexture>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr329(
                ptr.as_raw_ptr() as *mut crate::QSharedGLTexture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QSharedGLTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSharedGLTexture* dynamic_cast<Qt3DRender::QSharedGLTexture*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSharedGLTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSharedGLTexture_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QWaitFence> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QWaitFence* static_cast<Qt3DRender::QWaitFence*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QWaitFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QWaitFence_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QWaitFence {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QWaitFence* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWaitFence>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr41(
                ptr.as_raw_ptr() as *mut crate::QWaitFence,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::QWaitFence {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QWaitFence* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr41(
                    self as *const crate::QWaitFence as *mut crate::QWaitFence,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QWaitFence> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QWaitFence* dynamic_cast<Qt3DRender::QWaitFence*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QWaitFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QWaitFence_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QWaitFence> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QWaitFence* static_cast<Qt3DRender::QWaitFence*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QWaitFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QWaitFence_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QWaitFence {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QWaitFence* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWaitFence>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr182(
                ptr.as_raw_ptr() as *mut crate::QWaitFence
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QWaitFence> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QWaitFence* dynamic_cast<Qt3DRender::QWaitFence*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QWaitFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QWaitFence_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::QWaitFence> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QWaitFence* static_cast<Qt3DRender::QWaitFence*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QWaitFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QWaitFence_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QWaitFence {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QWaitFence* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QWaitFence>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr330(
                ptr.as_raw_ptr() as *mut crate::QWaitFence
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.13.0", cpp_lib_version = "5.14.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::QWaitFence> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QWaitFence* dynamic_cast<Qt3DRender::QWaitFence*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QWaitFence> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QWaitFence_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::QDepthRange {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QDepthRange::~QDepthRange()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QDepthRange_dQDepthRange(
            self as *const crate::QDepthRange as *mut crate::QDepthRange,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::QNoPicking {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QNoPicking::~QNoPicking()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QNoPicking_dQNoPicking(
            self as *const crate::QNoPicking as *mut crate::QNoPicking,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::QRasterMode {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QRasterMode::~QRasterMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QRasterMode_dQRasterMode(
            self as *const crate::QRasterMode as *mut crate::QRasterMode,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::QShaderImage {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QShaderImage::~QShaderImage()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QShaderImage_dQShaderImage(
            self as *const crate::QShaderImage as *mut crate::QShaderImage,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::QSubtreeEnabler {
    /// Calls C++ function: <span style='color: green;'>```virtual [destructor] void Qt3DRender::QSubtreeEnabler::~QSubtreeEnabler()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QSubtreeEnabler_dQSubtreeEnabler(
            self as *const crate::QSubtreeEnabler as *mut crate::QSubtreeEnabler,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::cmp::PartialEq<::cpp_core::Ref<crate::QTextureDataUpdate>>
    for crate::QTextureDataUpdate
{
    /// Calls C++ function: <span style='color: green;'>```bool Qt3DRender::operator==(const Qt3DRender::QTextureDataUpdate& lhs, const Qt3DRender::QTextureDataUpdate& rhs)```</span>.
    #[inline(always)]
    fn eq(&self, rhs: &::cpp_core::Ref<crate::QTextureDataUpdate>) -> bool {
        unsafe {
            crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_operator__4(
                self as *const crate::QTextureDataUpdate,
                rhs.as_raw_ptr(),
            )
        }
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::QTextureDataUpdate {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void Qt3DRender::QTextureDataUpdate::~QTextureDataUpdate()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_QTextureDataUpdate_dQTextureDataUpdate(
            self as *const crate::QTextureDataUpdate as *mut crate::QTextureDataUpdate,
        )
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QDepthRange> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthRange* static_cast<Qt3DRender::QDepthRange*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QDepthRange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDepthRange_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QDepthRange {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QDepthRange* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDepthRange>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr44(
                ptr.as_raw_ptr() as *mut crate::QDepthRange,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::QDepthRange {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QDepthRange* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr44(
                    self as *const crate::QDepthRange as *mut crate::QDepthRange,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QDepthRange> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthRange* dynamic_cast<Qt3DRender::QDepthRange*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QDepthRange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDepthRange_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QDepthRange> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthRange* static_cast<Qt3DRender::QDepthRange*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDepthRange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDepthRange_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QDepthRange {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QDepthRange* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDepthRange>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr186(
                ptr.as_raw_ptr() as *mut crate::QDepthRange
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QDepthRange> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthRange* dynamic_cast<Qt3DRender::QDepthRange*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QDepthRange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDepthRange_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QDepthRange> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthRange* static_cast<Qt3DRender::QDepthRange*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDepthRange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QDepthRange_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QDepthRange {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QDepthRange* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QDepthRange>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr342(
                ptr.as_raw_ptr() as *mut crate::QDepthRange
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QDepthRange> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QDepthRange* dynamic_cast<Qt3DRender::QDepthRange*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QDepthRange> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QDepthRange_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QNoPicking> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoPicking* static_cast<Qt3DRender::QNoPicking*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QNoPicking> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoPicking_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QNoPicking {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QNoPicking* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoPicking>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr44(
                ptr.as_raw_ptr() as *mut crate::QNoPicking,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::QNoPicking {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QNoPicking* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr44(
                    self as *const crate::QNoPicking as *mut crate::QNoPicking,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QNoPicking> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoPicking* dynamic_cast<Qt3DRender::QNoPicking*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QNoPicking> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoPicking_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QNoPicking> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoPicking* static_cast<Qt3DRender::QNoPicking*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QNoPicking> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoPicking_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QNoPicking {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QNoPicking* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoPicking>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr187(
                ptr.as_raw_ptr() as *mut crate::QNoPicking
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QNoPicking> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoPicking* dynamic_cast<Qt3DRender::QNoPicking*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QNoPicking> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoPicking_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QNoPicking> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoPicking* static_cast<Qt3DRender::QNoPicking*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QNoPicking> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QNoPicking_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QNoPicking {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QNoPicking* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QNoPicking>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr343(
                ptr.as_raw_ptr() as *mut crate::QNoPicking
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QNoPicking> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QNoPicking* dynamic_cast<Qt3DRender::QNoPicking*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QNoPicking> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QNoPicking_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QRasterMode> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode* static_cast<Qt3DRender::QRasterMode*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRasterMode_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<crate::QRenderState> for crate::QRasterMode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QRasterMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterMode>,
    ) -> ::cpp_core::Ptr<crate::QRenderState> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr45(
                ptr.as_raw_ptr() as *mut crate::QRasterMode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::QRasterMode {
    type Target = crate::QRenderState;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRenderState* static_cast<Qt3DRender::QRenderState*>(Qt3DRender::QRasterMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QRenderState {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRenderState_ptr45(
                    self as *const crate::QRasterMode as *mut crate::QRasterMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QRasterMode> for crate::QRenderState {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode* dynamic_cast<Qt3DRender::QRasterMode*>(Qt3DRender::QRenderState* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QRenderState>,
    ) -> ::cpp_core::Ptr<crate::QRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRasterMode_ptr(
                ptr.as_raw_ptr() as *mut crate::QRenderState,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QRasterMode> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode* static_cast<Qt3DRender::QRasterMode*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRasterMode_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QRasterMode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QRasterMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterMode>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr188(
                ptr.as_raw_ptr() as *mut crate::QRasterMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QRasterMode> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode* dynamic_cast<Qt3DRender::QRasterMode*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRasterMode_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QRasterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode* static_cast<Qt3DRender::QRasterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QRasterMode_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QRasterMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QRasterMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QRasterMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr344(
                ptr.as_raw_ptr() as *mut crate::QRasterMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QRasterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QRasterMode* dynamic_cast<Qt3DRender::QRasterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QRasterMode_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QShaderImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderImage* static_cast<Qt3DRender::QShaderImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderImage_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QShaderImage {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QShaderImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderImage>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr189(
                ptr.as_raw_ptr() as *mut crate::QShaderImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::QShaderImage {
    type Target = ::qt_3d_core::QNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QShaderImage* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_3d_core::QNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr189(
                    self as *const crate::QShaderImage as *mut crate::QShaderImage,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QShaderImage> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderImage* dynamic_cast<Qt3DRender::QShaderImage*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QShaderImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderImage_ptr(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QShaderImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderImage* static_cast<Qt3DRender::QShaderImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QShaderImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QShaderImage {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QShaderImage* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QShaderImage>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr345(
                ptr.as_raw_ptr() as *mut crate::QShaderImage
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QShaderImage> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QShaderImage* dynamic_cast<Qt3DRender::QShaderImage*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QShaderImage> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QShaderImage_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QSubtreeEnabler> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler* static_cast<Qt3DRender::QSubtreeEnabler*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QSubtreeEnabler> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSubtreeEnabler_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<crate::QFrameGraphNode> for crate::QSubtreeEnabler {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSubtreeEnabler* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSubtreeEnabler>,
    ) -> ::cpp_core::Ptr<crate::QFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr45(
                ptr.as_raw_ptr() as *mut crate::QSubtreeEnabler,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::QSubtreeEnabler {
    type Target = crate::QFrameGraphNode;
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QFrameGraphNode* static_cast<Qt3DRender::QFrameGraphNode*>(Qt3DRender::QSubtreeEnabler* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &crate::QFrameGraphNode {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QFrameGraphNode_ptr45(
                    self as *const crate::QSubtreeEnabler as *mut crate::QSubtreeEnabler,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QSubtreeEnabler> for crate::QFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler* dynamic_cast<Qt3DRender::QSubtreeEnabler*>(Qt3DRender::QFrameGraphNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<crate::QFrameGraphNode>,
    ) -> ::cpp_core::Ptr<crate::QSubtreeEnabler> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSubtreeEnabler_ptr(
                ptr.as_raw_ptr() as *mut crate::QFrameGraphNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QSubtreeEnabler> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler* static_cast<Qt3DRender::QSubtreeEnabler*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSubtreeEnabler> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSubtreeEnabler_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_3d_core::QNode> for crate::QSubtreeEnabler {
    /// Calls C++ function: <span style='color: green;'>```Qt3DCore::QNode* static_cast<Qt3DCore::QNode*>(Qt3DRender::QSubtreeEnabler* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSubtreeEnabler>,
    ) -> ::cpp_core::Ptr<::qt_3d_core::QNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DCore_QNode_ptr190(
                ptr.as_raw_ptr() as *mut crate::QSubtreeEnabler
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QSubtreeEnabler> for ::qt_3d_core::QNode {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler* dynamic_cast<Qt3DRender::QSubtreeEnabler*>(Qt3DCore::QNode* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_3d_core::QNode>,
    ) -> ::cpp_core::Ptr<crate::QSubtreeEnabler> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSubtreeEnabler_ptr1(
                ptr.as_raw_ptr() as *mut ::qt_3d_core::QNode,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::QSubtreeEnabler> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler* static_cast<Qt3DRender::QSubtreeEnabler*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSubtreeEnabler> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_Qt3DRender_QSubtreeEnabler_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::QSubtreeEnabler {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(Qt3DRender::QSubtreeEnabler* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::QSubtreeEnabler>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr346(
                ptr.as_raw_ptr() as *mut crate::QSubtreeEnabler
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::QSubtreeEnabler> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```Qt3DRender::QSubtreeEnabler* dynamic_cast<Qt3DRender::QSubtreeEnabler*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::QSubtreeEnabler> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_Qt3DRender_QSubtreeEnabler_ptr2(
                ptr.as_raw_ptr() as *mut ::qt_core::QObject,
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfCubeMapFace {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace(self as *const crate::SignalOfCubeMapFace as *mut crate::SignalOfCubeMapFace)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQPickEvent {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr(self as *const crate::SignalOfQPickEvent as *mut crate::SignalOfQPickEvent)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfUsageType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType(self as *const crate::SignalOfUsageType as *mut crate::SignalOfUsageType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQAttribute {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr(self as *const crate::SignalOfQAttribute as *mut crate::SignalOfQAttribute)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQByteArray {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref(self as *const crate::SignalOfQByteArray as *mut crate::SignalOfQByteArray)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfCullingMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode(self as *const crate::SignalOfCullingMode as *mut crate::SignalOfCullingMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfAlphaFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction(self as *const crate::SignalOfAlphaFunction as *mut crate::SignalOfAlphaFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQStringList {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref(self as *const crate::SignalOfQStringList as *mut crate::SignalOfQStringList)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfStencilFaceMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode(self as *const crate::SignalOfStencilFaceMode as *mut crate::SignalOfStencilFaceMode)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SignalOfAccess {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access(self as *const crate::SignalOfAccess as *mut crate::SignalOfAccess)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SignalOfEnablement {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement(self as *const crate::SignalOfEnablement as *mut crate::SignalOfEnablement)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQGeometry {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr(self as *const crate::SignalOfQGeometry as *mut crate::SignalOfQGeometry)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfRenderPolicy {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy(self as *const crate::SignalOfRenderPolicy as *mut crate::SignalOfRenderPolicy)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQVectorOfDouble {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref(self as *const crate::SignalOfQVectorOfDouble as *mut crate::SignalOfQVectorOfDouble)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQEffect {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr(self as *const crate::SignalOfQEffect as *mut crate::SignalOfQEffect)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfComparisonFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction(self as *const crate::SignalOfComparisonFunction as *mut crate::SignalOfComparisonFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQCamera {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr(self as *const crate::SignalOfQCamera as *mut crate::SignalOfQCamera)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfProjectionType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType(self as *const crate::SignalOfProjectionType as *mut crate::SignalOfProjectionType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQColor {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref(self as *const crate::SignalOfQColor as *mut crate::SignalOfQColor)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfVertexBaseType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType(self as *const crate::SignalOfVertexBaseType as *mut crate::SignalOfVertexBaseType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfFaceMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode(self as *const crate::SignalOfFaceMode as *mut crate::SignalOfFaceMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfWrapMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode(self as *const crate::SignalOfWrapMode as *mut crate::SignalOfWrapMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfBlending {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending(self as *const crate::SignalOfBlending as *mut crate::SignalOfBlending)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQRenderTargetOutput {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr(self as *const crate::SignalOfQRenderTargetOutput as *mut crate::SignalOfQRenderTargetOutput)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfAccessType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType(self as *const crate::SignalOfAccessType as *mut crate::SignalOfAccessType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfPrimitiveType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType(self as *const crate::SignalOfPrimitiveType as *mut crate::SignalOfPrimitiveType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQLevelOfDetailBoundingSphere {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref(self as *const crate::SignalOfQLevelOfDetailBoundingSphere as *mut crate::SignalOfQLevelOfDetailBoundingSphere)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfPickMethod {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod(self as *const crate::SignalOfPickMethod as *mut crate::SignalOfPickMethod)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfSizeMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode(self as *const crate::SignalOfSizeMode as *mut crate::SignalOfSizeMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfOperation {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation(self as *const crate::SignalOfOperation as *mut crate::SignalOfOperation)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQPoint {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref(self as *const crate::SignalOfQPoint as *mut crate::SignalOfQPoint)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQVariant {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QVariant::~ctr_qt_3d_render_ffi_signal_wrapper_QVariant()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_dctr_qt_3d_render_ffi_signal_wrapper_QVariant(self as *const crate::SignalOfQVariant as *mut crate::SignalOfQVariant)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQFlagsOperation {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation::~ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_dctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation(self as *const crate::SignalOfQFlagsOperation as *mut crate::SignalOfQFlagsOperation)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SignalOfRunMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode(self as *const crate::SignalOfRunMode as *mut crate::SignalOfRunMode)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SignalOfHandleType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType(self as *const crate::SignalOfHandleType as *mut crate::SignalOfHandleType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfU64 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_quint64::~ctr_qt_3d_render_ffi_signal_wrapper_quint64()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_quint64_dctr_qt_3d_render_ffi_signal_wrapper_quint64(self as *const crate::SignalOfU64 as *mut crate::SignalOfU64)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr(self as *const crate::SignalOfQRenderTarget as *mut crate::SignalOfQRenderTarget)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfStatus {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status(self as *const crate::SignalOfStatus as *mut crate::SignalOfStatus)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfBufferType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType(self as *const crate::SignalOfBufferType as *mut crate::SignalOfBufferType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfAttributeType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType(self as *const crate::SignalOfAttributeType as *mut crate::SignalOfAttributeType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQVectorOfInt {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref(self as *const crate::SignalOfQVectorOfInt as *mut crate::SignalOfQVectorOfInt)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr(self as *const crate::SignalOfQFrameGraphNode as *mut crate::SignalOfQFrameGraphNode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfStatus2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status(self as *const crate::SignalOfStatus2 as *mut crate::SignalOfStatus2)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SignalOfQVectorOfQRayCasterHit {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref(self as *const crate::SignalOfQVectorOfQRayCasterHit as *mut crate::SignalOfQVectorOfQRayCasterHit)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfBlendFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction(self as *const crate::SignalOfBlendFunction as *mut crate::SignalOfBlendFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfApi {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api(self as *const crate::SignalOfApi as *mut crate::SignalOfApi)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfThresholdType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType(self as *const crate::SignalOfThresholdType as *mut crate::SignalOfThresholdType)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SignalOfFilterMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode(self as *const crate::SignalOfFilterMode as *mut crate::SignalOfFilterMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQBuffer {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr(self as *const crate::SignalOfQBuffer as *mut crate::SignalOfQBuffer)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr(self as *const crate::SignalOfQAbstractTexture as *mut crate::SignalOfQAbstractTexture)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SignalOfImageFormat {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat(self as *const crate::SignalOfImageFormat as *mut crate::SignalOfImageFormat)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr(self as *const crate::SignalOfQShaderProgram as *mut crate::SignalOfQShaderProgram)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfStatus3 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status(self as *const crate::SignalOfStatus3 as *mut crate::SignalOfStatus3)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfDepthFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction(self as *const crate::SignalOfDepthFunction as *mut crate::SignalOfDepthFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfWindingDirection {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection(self as *const crate::SignalOfWindingDirection as *mut crate::SignalOfWindingDirection)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfStencilFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction(self as *const crate::SignalOfStencilFunction as *mut crate::SignalOfStencilFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfComparisonMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode(self as *const crate::SignalOfComparisonMode as *mut crate::SignalOfComparisonMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfBufferType2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType(self as *const crate::SignalOfBufferType2 as *mut crate::SignalOfBufferType2)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQVectorOfSortType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref::~ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_dctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref(self as *const crate::SignalOfQVectorOfSortType as *mut crate::SignalOfQVectorOfSortType)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfUint {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int::~ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_dctr_qt_3d_render_ffi_signal_wrapper_unsigned_int(self as *const crate::SignalOfUint as *mut crate::SignalOfUint)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfStatus4 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status(self as *const crate::SignalOfStatus4 as *mut crate::SignalOfStatus4)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfTextureFormat {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat(self as *const crate::SignalOfTextureFormat as *mut crate::SignalOfTextureFormat)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfPickResultMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode(self as *const crate::SignalOfPickResultMode as *mut crate::SignalOfPickResultMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfFaceOrientationPickingMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode(self as *const crate::SignalOfFaceOrientationPickingMode as *mut crate::SignalOfFaceOrientationPickingMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfAttachmentPoint {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint(self as *const crate::SignalOfAttachmentPoint as *mut crate::SignalOfAttachmentPoint)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SignalOfHandleType2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType(self as *const crate::SignalOfHandleType2 as *mut crate::SignalOfHandleType2)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfOpenglProfile {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile(self as *const crate::SignalOfOpenglProfile as *mut crate::SignalOfOpenglProfile)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SignalOfFaceMode2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode(self as *const crate::SignalOfFaceMode2 as *mut crate::SignalOfFaceMode2)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfFilter {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter(self as *const crate::SignalOfFilter as *mut crate::SignalOfFilter)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQVector3D {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QVector3D::~ctr_qt_3d_render_ffi_signal_wrapper_QVector3D()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_dctr_qt_3d_render_ffi_signal_wrapper_QVector3D(self as *const crate::SignalOfQVector3D as *mut crate::SignalOfQVector3D)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SignalOfRasterMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode::~ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_dctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode(self as *const crate::SignalOfRasterMode as *mut crate::SignalOfRasterMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SignalOfQSize {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_signal_wrapper_QSize::~ctr_qt_3d_render_ffi_signal_wrapper_QSize()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_signal_wrapper_QSize_dctr_qt_3d_render_ffi_signal_wrapper_QSize(self as *const crate::SignalOfQSize as *mut crate::SignalOfQSize)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfCubeMapFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfCubeMapFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfCubeMapFace {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfCubeMapFace>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr200(
                ptr.as_raw_ptr() as *mut crate::SignalOfCubeMapFace
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfCubeMapFace {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr200(
                    self as *const crate::SignalOfCubeMapFace as *mut crate::SignalOfCubeMapFace,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfCubeMapFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfCubeMapFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQPickEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQPickEvent {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQPickEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr202(
                ptr.as_raw_ptr() as *mut crate::SignalOfQPickEvent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQPickEvent {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr202(
                    self as *const crate::SignalOfQPickEvent as *mut crate::SignalOfQPickEvent,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQPickEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickEvent_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfUsageType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfUsageType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfUsageType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfUsageType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr204(
                ptr.as_raw_ptr() as *mut crate::SignalOfUsageType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfUsageType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr204(
                    self as *const crate::SignalOfUsageType as *mut crate::SignalOfUsageType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfUsageType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfUsageType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_UsageType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQAttribute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQAttribute {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQAttribute>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr206(
                ptr.as_raw_ptr() as *mut crate::SignalOfQAttribute
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQAttribute {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr206(
                    self as *const crate::SignalOfQAttribute as *mut crate::SignalOfQAttribute,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQAttribute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQByteArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQByteArray {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQByteArray>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr208(
                ptr.as_raw_ptr() as *mut crate::SignalOfQByteArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQByteArray {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr208(
                    self as *const crate::SignalOfQByteArray as *mut crate::SignalOfQByteArray,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQByteArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QByteArray_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfCullingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfCullingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfCullingMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfCullingMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr210(
                ptr.as_raw_ptr() as *mut crate::SignalOfCullingMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfCullingMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr210(
                    self as *const crate::SignalOfCullingMode as *mut crate::SignalOfCullingMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfCullingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfCullingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCullFace_CullingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfAlphaFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAlphaFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfAlphaFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfAlphaFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr212(
                ptr.as_raw_ptr() as *mut crate::SignalOfAlphaFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfAlphaFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr212(
                    self as *const crate::SignalOfAlphaFunction
                        as *mut crate::SignalOfAlphaFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfAlphaFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAlphaFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQStringList> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQStringList {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQStringList>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr214(
                ptr.as_raw_ptr() as *mut crate::SignalOfQStringList
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQStringList {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr214(
                    self as *const crate::SignalOfQStringList as *mut crate::SignalOfQStringList,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQStringList> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QStringList_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfStencilFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStencilFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfStencilFaceMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfStencilFaceMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr216(
                ptr.as_raw_ptr() as *mut crate::SignalOfStencilFaceMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfStencilFaceMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr216(
                    self as *const crate::SignalOfStencilFaceMode
                        as *mut crate::SignalOfStencilFaceMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfStencilFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStencilFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SignalOfAccess> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAccess> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfAccess {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfAccess>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr218(
                ptr.as_raw_ptr() as *mut crate::SignalOfAccess
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SignalOfAccess {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr218(
                    self as *const crate::SignalOfAccess as *mut crate::SignalOfAccess,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SignalOfAccess> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAccess> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_Access_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SignalOfEnablement> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfEnablement> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfEnablement {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfEnablement>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr220(
                ptr.as_raw_ptr() as *mut crate::SignalOfEnablement
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SignalOfEnablement {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr220(
                    self as *const crate::SignalOfEnablement as *mut crate::SignalOfEnablement,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SignalOfEnablement> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfEnablement> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQGeometry> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQGeometry {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQGeometry>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr222(
                ptr.as_raw_ptr() as *mut crate::SignalOfQGeometry
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQGeometry {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr222(
                    self as *const crate::SignalOfQGeometry as *mut crate::SignalOfQGeometry,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQGeometry> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometry_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfRenderPolicy> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfRenderPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfRenderPolicy {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfRenderPolicy>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr224(
                ptr.as_raw_ptr() as *mut crate::SignalOfRenderPolicy
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfRenderPolicy {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr224(
                    self as *const crate::SignalOfRenderPolicy as *mut crate::SignalOfRenderPolicy,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfRenderPolicy> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfRenderPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQVectorOfDouble> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfDouble> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQVectorOfDouble {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQVectorOfDouble>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr226(
                ptr.as_raw_ptr() as *mut crate::SignalOfQVectorOfDouble
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQVectorOfDouble {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr226(
                    self as *const crate::SignalOfQVectorOfDouble
                        as *mut crate::SignalOfQVectorOfDouble,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQVectorOfDouble> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfDouble> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_double_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQEffect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQEffect {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQEffect>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr228(
                ptr.as_raw_ptr() as *mut crate::SignalOfQEffect
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQEffect {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr228(
                    self as *const crate::SignalOfQEffect as *mut crate::SignalOfQEffect,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQEffect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QEffect_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfComparisonFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfComparisonFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfComparisonFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfComparisonFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr230(
                ptr.as_raw_ptr() as *mut crate::SignalOfComparisonFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfComparisonFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr230(
                    self as *const crate::SignalOfComparisonFunction
                        as *mut crate::SignalOfComparisonFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfComparisonFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfComparisonFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQCamera> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQCamera {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQCamera>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr232(
                ptr.as_raw_ptr() as *mut crate::SignalOfQCamera
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQCamera {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr232(
                    self as *const crate::SignalOfQCamera as *mut crate::SignalOfQCamera,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQCamera> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCamera_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfProjectionType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfProjectionType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfProjectionType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfProjectionType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr234(
                ptr.as_raw_ptr() as *mut crate::SignalOfProjectionType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfProjectionType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr234(
                    self as *const crate::SignalOfProjectionType
                        as *mut crate::SignalOfProjectionType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfProjectionType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfProjectionType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QCameraLens_ProjectionType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQColor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQColor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQColor {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQColor>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr236(
                ptr.as_raw_ptr() as *mut crate::SignalOfQColor
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQColor {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr236(
                    self as *const crate::SignalOfQColor as *mut crate::SignalOfQColor,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQColor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQColor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QColor_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfVertexBaseType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfVertexBaseType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfVertexBaseType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfVertexBaseType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr238(
                ptr.as_raw_ptr() as *mut crate::SignalOfVertexBaseType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfVertexBaseType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr238(
                    self as *const crate::SignalOfVertexBaseType
                        as *mut crate::SignalOfVertexBaseType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfVertexBaseType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfVertexBaseType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_VertexBaseType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfFaceMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfFaceMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr240(
                ptr.as_raw_ptr() as *mut crate::SignalOfFaceMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfFaceMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr240(
                    self as *const crate::SignalOfFaceMode as *mut crate::SignalOfFaceMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfWrapMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfWrapMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfWrapMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr242(
                ptr.as_raw_ptr() as *mut crate::SignalOfWrapMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfWrapMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr242(
                    self as *const crate::SignalOfWrapMode as *mut crate::SignalOfWrapMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfWrapMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfBlending> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBlending> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfBlending {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfBlending>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr244(
                ptr.as_raw_ptr() as *mut crate::SignalOfBlending
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfBlending {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr244(
                    self as *const crate::SignalOfBlending as *mut crate::SignalOfBlending,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfBlending> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBlending> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquationArguments_Blending_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQRenderTargetOutput> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQRenderTargetOutput {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQRenderTargetOutput>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr246(
                ptr.as_raw_ptr() as *mut crate::SignalOfQRenderTargetOutput
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQRenderTargetOutput {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr246(
                    self as *const crate::SignalOfQRenderTargetOutput
                        as *mut crate::SignalOfQRenderTargetOutput,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQRenderTargetOutput> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfAccessType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAccessType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfAccessType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfAccessType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr248(
                ptr.as_raw_ptr() as *mut crate::SignalOfAccessType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfAccessType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr248(
                    self as *const crate::SignalOfAccessType as *mut crate::SignalOfAccessType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfAccessType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAccessType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_AccessType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfPrimitiveType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfPrimitiveType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfPrimitiveType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfPrimitiveType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr250(
                ptr.as_raw_ptr() as *mut crate::SignalOfPrimitiveType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfPrimitiveType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr250(
                    self as *const crate::SignalOfPrimitiveType
                        as *mut crate::SignalOfPrimitiveType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfPrimitiveType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfPrimitiveType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQLevelOfDetailBoundingSphere>
    for ::qt_core::QObject
{
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQLevelOfDetailBoundingSphere {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQLevelOfDetailBoundingSphere>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr252(
                ptr.as_raw_ptr() as *mut crate::SignalOfQLevelOfDetailBoundingSphere
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQLevelOfDetailBoundingSphere {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr252(
                    self as *const crate::SignalOfQLevelOfDetailBoundingSphere
                        as *mut crate::SignalOfQLevelOfDetailBoundingSphere,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQLevelOfDetailBoundingSphere> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfPickMethod> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfPickMethod> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfPickMethod {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfPickMethod>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr254(
                ptr.as_raw_ptr() as *mut crate::SignalOfPickMethod
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfPickMethod {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr254(
                    self as *const crate::SignalOfPickMethod as *mut crate::SignalOfPickMethod,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfPickMethod> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfPickMethod> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickMethod_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfSizeMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfSizeMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfSizeMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfSizeMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr256(
                ptr.as_raw_ptr() as *mut crate::SignalOfSizeMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfSizeMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr256(
                    self as *const crate::SignalOfSizeMode as *mut crate::SignalOfSizeMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfSizeMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfSizeMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPointSize_SizeMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfOperation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfOperation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr258(
                ptr.as_raw_ptr() as *mut crate::SignalOfOperation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfOperation {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr258(
                    self as *const crate::SignalOfOperation as *mut crate::SignalOfOperation,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilOperationArguments_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQPoint {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQPoint>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr260(
                ptr.as_raw_ptr() as *mut crate::SignalOfQPoint
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQPoint {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr260(
                    self as *const crate::SignalOfQPoint as *mut crate::SignalOfQPoint,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QPoint_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQVariant> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVariant* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVariant*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQVariant {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVariant* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQVariant>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr262(
                ptr.as_raw_ptr() as *mut crate::SignalOfQVariant
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQVariant {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVariant* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr262(
                    self as *const crate::SignalOfQVariant as *mut crate::SignalOfQVariant,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQVariant> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVariant* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVariant*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVariant_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQFlagsOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQFlagsOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQFlagsOperation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQFlagsOperation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr264(
                ptr.as_raw_ptr() as *mut crate::SignalOfQFlagsOperation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQFlagsOperation {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr264(
                    self as *const crate::SignalOfQFlagsOperation
                        as *mut crate::SignalOfQFlagsOperation,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQFlagsOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQFlagsOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SignalOfRunMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfRunMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfRunMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfRunMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr266(
                ptr.as_raw_ptr() as *mut crate::SignalOfRunMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SignalOfRunMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr266(
                    self as *const crate::SignalOfRunMode as *mut crate::SignalOfRunMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SignalOfRunMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfRunMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SignalOfHandleType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfHandleType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfHandleType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfHandleType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr268(
                ptr.as_raw_ptr() as *mut crate::SignalOfHandleType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SignalOfHandleType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr268(
                    self as *const crate::SignalOfHandleType as *mut crate::SignalOfHandleType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SignalOfHandleType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfHandleType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSetFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfU64> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_quint64* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_quint64*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfU64> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_quint64_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfU64 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_quint64* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfU64>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr270(
                ptr.as_raw_ptr() as *mut crate::SignalOfU64
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfU64 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_quint64* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr270(
                    self as *const crate::SignalOfU64 as *mut crate::SignalOfU64,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfU64> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_quint64* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_quint64*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfU64> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_quint64_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQRenderTarget> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQRenderTarget>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr272(
                ptr.as_raw_ptr() as *mut crate::SignalOfQRenderTarget
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQRenderTarget {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr272(
                    self as *const crate::SignalOfQRenderTarget
                        as *mut crate::SignalOfQRenderTarget,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQRenderTarget> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTarget_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfStatus> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfStatus {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfStatus>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr274(
                ptr.as_raw_ptr() as *mut crate::SignalOfStatus
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfStatus {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr274(
                    self as *const crate::SignalOfStatus as *mut crate::SignalOfStatus,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfStatus> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfBufferType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBufferType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfBufferType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfBufferType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr276(
                ptr.as_raw_ptr() as *mut crate::SignalOfBufferType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfBufferType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr276(
                    self as *const crate::SignalOfBufferType as *mut crate::SignalOfBufferType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfBufferType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBufferType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfAttributeType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAttributeType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfAttributeType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfAttributeType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr278(
                ptr.as_raw_ptr() as *mut crate::SignalOfAttributeType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfAttributeType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr278(
                    self as *const crate::SignalOfAttributeType
                        as *mut crate::SignalOfAttributeType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfAttributeType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAttributeType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAttribute_AttributeType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQVectorOfInt> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfInt> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQVectorOfInt {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQVectorOfInt>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr280(
                ptr.as_raw_ptr() as *mut crate::SignalOfQVectorOfInt
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQVectorOfInt {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr280(
                    self as *const crate::SignalOfQVectorOfInt as *mut crate::SignalOfQVectorOfInt,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQVectorOfInt> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfInt> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_int_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQFrameGraphNode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQFrameGraphNode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr282(
                ptr.as_raw_ptr() as *mut crate::SignalOfQFrameGraphNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQFrameGraphNode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr282(
                    self as *const crate::SignalOfQFrameGraphNode
                        as *mut crate::SignalOfQFrameGraphNode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQFrameGraphNode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrameGraphNode_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfStatus2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfStatus2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfStatus2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr284(
                ptr.as_raw_ptr() as *mut crate::SignalOfStatus2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfStatus2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr284(
                    self as *const crate::SignalOfStatus2 as *mut crate::SignalOfStatus2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfStatus2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QTextureImage_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SignalOfQVectorOfQRayCasterHit> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQVectorOfQRayCasterHit {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQVectorOfQRayCasterHit>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr286(
                ptr.as_raw_ptr() as *mut crate::SignalOfQVectorOfQRayCasterHit
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SignalOfQVectorOfQRayCasterHit {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr286(
                    self as *const crate::SignalOfQVectorOfQRayCasterHit
                        as *mut crate::SignalOfQVectorOfQRayCasterHit,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SignalOfQVectorOfQRayCasterHit> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfBlendFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBlendFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfBlendFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfBlendFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr288(
                ptr.as_raw_ptr() as *mut crate::SignalOfBlendFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfBlendFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr288(
                    self as *const crate::SignalOfBlendFunction
                        as *mut crate::SignalOfBlendFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfBlendFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBlendFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBlendEquation_BlendFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfApi> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfApi> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfApi {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfApi>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr290(
                ptr.as_raw_ptr() as *mut crate::SignalOfApi
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfApi {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr290(
                    self as *const crate::SignalOfApi as *mut crate::SignalOfApi,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfApi> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfApi> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_Api_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfThresholdType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfThresholdType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfThresholdType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfThresholdType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr292(
                ptr.as_raw_ptr() as *mut crate::SignalOfThresholdType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfThresholdType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr292(
                    self as *const crate::SignalOfThresholdType
                        as *mut crate::SignalOfThresholdType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfThresholdType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfThresholdType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SignalOfFilterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFilterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfFilterMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfFilterMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr294(
                ptr.as_raw_ptr() as *mut crate::SignalOfFilterMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SignalOfFilterMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr294(
                    self as *const crate::SignalOfFilterMode as *mut crate::SignalOfFilterMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SignalOfFilterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFilterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQBuffer {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQBuffer>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr296(
                ptr.as_raw_ptr() as *mut crate::SignalOfQBuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQBuffer {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr296(
                    self as *const crate::SignalOfQBuffer as *mut crate::SignalOfQBuffer,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QBuffer_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQAbstractTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQAbstractTexture>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr298(
                ptr.as_raw_ptr() as *mut crate::SignalOfQAbstractTexture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQAbstractTexture {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr298(
                    self as *const crate::SignalOfQAbstractTexture
                        as *mut crate::SignalOfQAbstractTexture,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQAbstractTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SignalOfImageFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfImageFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfImageFormat {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfImageFormat>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr300(
                ptr.as_raw_ptr() as *mut crate::SignalOfImageFormat
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SignalOfImageFormat {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr300(
                    self as *const crate::SignalOfImageFormat as *mut crate::SignalOfImageFormat,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SignalOfImageFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfImageFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderImage_ImageFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQShaderProgram>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr311(
                ptr.as_raw_ptr() as *mut crate::SignalOfQShaderProgram
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQShaderProgram {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr311(
                    self as *const crate::SignalOfQShaderProgram
                        as *mut crate::SignalOfQShaderProgram,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QShaderProgram_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfStatus3> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus3> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfStatus3 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfStatus3>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr313(
                ptr.as_raw_ptr() as *mut crate::SignalOfStatus3
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfStatus3 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr313(
                    self as *const crate::SignalOfStatus3 as *mut crate::SignalOfStatus3,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfStatus3> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus3> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfDepthFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfDepthFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfDepthFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfDepthFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr315(
                ptr.as_raw_ptr() as *mut crate::SignalOfDepthFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfDepthFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr315(
                    self as *const crate::SignalOfDepthFunction
                        as *mut crate::SignalOfDepthFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfDepthFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfDepthFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QDepthTest_DepthFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfWindingDirection> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfWindingDirection> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfWindingDirection {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfWindingDirection>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr317(
                ptr.as_raw_ptr() as *mut crate::SignalOfWindingDirection
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfWindingDirection {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr317(
                    self as *const crate::SignalOfWindingDirection
                        as *mut crate::SignalOfWindingDirection,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfWindingDirection> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfWindingDirection> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QFrontFace_WindingDirection_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfStencilFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStencilFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfStencilFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfStencilFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr319(
                ptr.as_raw_ptr() as *mut crate::SignalOfStencilFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfStencilFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr319(
                    self as *const crate::SignalOfStencilFunction
                        as *mut crate::SignalOfStencilFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfStencilFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStencilFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfComparisonMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfComparisonMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfComparisonMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfComparisonMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr321(
                ptr.as_raw_ptr() as *mut crate::SignalOfComparisonMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfComparisonMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr321(
                    self as *const crate::SignalOfComparisonMode
                        as *mut crate::SignalOfComparisonMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfComparisonMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfComparisonMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfBufferType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBufferType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfBufferType2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfBufferType2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr323(
                ptr.as_raw_ptr() as *mut crate::SignalOfBufferType2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfBufferType2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr323(
                    self as *const crate::SignalOfBufferType2 as *mut crate::SignalOfBufferType2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfBufferType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfBufferType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QClearBuffers_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQVectorOfSortType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQVectorOfSortType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQVectorOfSortType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr325(
                ptr.as_raw_ptr() as *mut crate::SignalOfQVectorOfSortType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQVectorOfSortType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr325(
                    self as *const crate::SignalOfQVectorOfSortType
                        as *mut crate::SignalOfQVectorOfSortType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQVectorOfSortType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfUint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfUint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfUint {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfUint>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr327(
                ptr.as_raw_ptr() as *mut crate::SignalOfUint
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfUint {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr327(
                    self as *const crate::SignalOfUint as *mut crate::SignalOfUint,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfUint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfUint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_unsigned_int_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfStatus4> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfStatus4 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfStatus4>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr332(
                ptr.as_raw_ptr() as *mut crate::SignalOfStatus4
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfStatus4 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr332(
                    self as *const crate::SignalOfStatus4 as *mut crate::SignalOfStatus4,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfStatus4> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfStatus4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QSceneLoader_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfTextureFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfTextureFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfTextureFormat {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfTextureFormat>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr334(
                ptr.as_raw_ptr() as *mut crate::SignalOfTextureFormat
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfTextureFormat {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr334(
                    self as *const crate::SignalOfTextureFormat
                        as *mut crate::SignalOfTextureFormat,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfTextureFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfTextureFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfPickResultMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfPickResultMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfPickResultMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfPickResultMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr336(
                ptr.as_raw_ptr() as *mut crate::SignalOfPickResultMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfPickResultMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr336(
                    self as *const crate::SignalOfPickResultMode
                        as *mut crate::SignalOfPickResultMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfPickResultMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfPickResultMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_PickResultMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfFaceOrientationPickingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFaceOrientationPickingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfFaceOrientationPickingMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfFaceOrientationPickingMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr338(
                ptr.as_raw_ptr() as *mut crate::SignalOfFaceOrientationPickingMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfFaceOrientationPickingMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr338(
                    self as *const crate::SignalOfFaceOrientationPickingMode
                        as *mut crate::SignalOfFaceOrientationPickingMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfFaceOrientationPickingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFaceOrientationPickingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfAttachmentPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfAttachmentPoint {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfAttachmentPoint>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr340(
                ptr.as_raw_ptr() as *mut crate::SignalOfAttachmentPoint
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfAttachmentPoint {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr340(
                    self as *const crate::SignalOfAttachmentPoint
                        as *mut crate::SignalOfAttachmentPoint,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfAttachmentPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SignalOfHandleType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfHandleType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfHandleType2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfHandleType2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr347(
                ptr.as_raw_ptr() as *mut crate::SignalOfHandleType2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SignalOfHandleType2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr347(
                    self as *const crate::SignalOfHandleType2 as *mut crate::SignalOfHandleType2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SignalOfHandleType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfHandleType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QWaitFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfOpenglProfile> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfOpenglProfile> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfOpenglProfile {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfOpenglProfile>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr349(
                ptr.as_raw_ptr() as *mut crate::SignalOfOpenglProfile
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfOpenglProfile {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr349(
                    self as *const crate::SignalOfOpenglProfile
                        as *mut crate::SignalOfOpenglProfile,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfOpenglProfile> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfOpenglProfile> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SignalOfFaceMode2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFaceMode2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfFaceMode2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfFaceMode2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr351(
                ptr.as_raw_ptr() as *mut crate::SignalOfFaceMode2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SignalOfFaceMode2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr351(
                    self as *const crate::SignalOfFaceMode2 as *mut crate::SignalOfFaceMode2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SignalOfFaceMode2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFaceMode2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfFilter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfFilter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr353(
                ptr.as_raw_ptr() as *mut crate::SignalOfFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfFilter {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr353(
                    self as *const crate::SignalOfFilter as *mut crate::SignalOfFilter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QAbstractTexture_Filter_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQVector3D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector3D* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector3D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQVector3D {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector3D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQVector3D>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr355(
                ptr.as_raw_ptr() as *mut crate::SignalOfQVector3D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQVector3D {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QVector3D* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr355(
                    self as *const crate::SignalOfQVector3D as *mut crate::SignalOfQVector3D,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQVector3D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QVector3D* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QVector3D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QVector3D_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SignalOfRasterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfRasterMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfRasterMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr357(
                ptr.as_raw_ptr() as *mut crate::SignalOfRasterMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SignalOfRasterMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr357(
                    self as *const crate::SignalOfRasterMode as *mut crate::SignalOfRasterMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SignalOfRasterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_Qt3DRender_QRasterMode_RasterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SignalOfQSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QSize* static_cast<ctr_qt_3d_render_ffi_signal_wrapper_QSize*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_signal_wrapper_QSize_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SignalOfQSize {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QSize* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SignalOfQSize>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr359(
                ptr.as_raw_ptr() as *mut crate::SignalOfQSize
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SignalOfQSize {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_signal_wrapper_QSize* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr359(
                    self as *const crate::SignalOfQSize as *mut crate::SignalOfQSize,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SignalOfQSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_signal_wrapper_QSize* dynamic_cast<ctr_qt_3d_render_ffi_signal_wrapper_QSize*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SignalOfQSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_signal_wrapper_QSize_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfApi {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api(self as *const crate::SlotOfApi as *mut crate::SlotOfApi)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQGeometry {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr(self as *const crate::SlotOfQGeometry as *mut crate::SlotOfQGeometry)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr(self as *const crate::SlotOfQRenderTarget as *mut crate::SlotOfQRenderTarget)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQPoint {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref(self as *const crate::SlotOfQPoint as *mut crate::SlotOfQPoint)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfStatus {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status(self as *const crate::SlotOfStatus as *mut crate::SlotOfStatus)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQVector3D {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QVector3D::~ctr_qt_3d_render_ffi_slot_wrapper_QVector3D()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_dctr_qt_3d_render_ffi_slot_wrapper_QVector3D(self as *const crate::SlotOfQVector3D as *mut crate::SlotOfQVector3D)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfDepthFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction(self as *const crate::SlotOfDepthFunction as *mut crate::SlotOfDepthFunction)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SlotOfHandleType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType(self as *const crate::SlotOfHandleType as *mut crate::SlotOfHandleType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfComparisonMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode(self as *const crate::SlotOfComparisonMode as *mut crate::SlotOfComparisonMode)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SlotOfAccess {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access(self as *const crate::SlotOfAccess as *mut crate::SlotOfAccess)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfBufferType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType(self as *const crate::SlotOfBufferType as *mut crate::SlotOfBufferType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfFilter {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter(self as *const crate::SlotOfFilter as *mut crate::SlotOfFilter)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfCullingMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode(self as *const crate::SlotOfCullingMode as *mut crate::SlotOfCullingMode)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SlotOfHandleType2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType(self as *const crate::SlotOfHandleType2 as *mut crate::SlotOfHandleType2)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQFlagsOperation {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation::~ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_dctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation(self as *const crate::SlotOfQFlagsOperation as *mut crate::SlotOfQFlagsOperation)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SlotOfFilterMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode(self as *const crate::SlotOfFilterMode as *mut crate::SlotOfFilterMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfAccessType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType(self as *const crate::SlotOfAccessType as *mut crate::SlotOfAccessType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQVariant {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QVariant::~ctr_qt_3d_render_ffi_slot_wrapper_QVariant()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_dctr_qt_3d_render_ffi_slot_wrapper_QVariant(self as *const crate::SlotOfQVariant as *mut crate::SlotOfQVariant)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfAlphaFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction(self as *const crate::SlotOfAlphaFunction as *mut crate::SlotOfAlphaFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfWrapMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode(self as *const crate::SlotOfWrapMode as *mut crate::SlotOfWrapMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfStencilFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction(self as *const crate::SlotOfStencilFunction as *mut crate::SlotOfStencilFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQVectorOfDouble {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref(self as *const crate::SlotOfQVectorOfDouble as *mut crate::SlotOfQVectorOfDouble)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfSizeMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode(self as *const crate::SlotOfSizeMode as *mut crate::SlotOfSizeMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfVertexBaseType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType(self as *const crate::SlotOfVertexBaseType as *mut crate::SlotOfVertexBaseType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfThresholdType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType(self as *const crate::SlotOfThresholdType as *mut crate::SlotOfThresholdType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfFaceMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode(self as *const crate::SlotOfFaceMode as *mut crate::SlotOfFaceMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQByteArray {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref(self as *const crate::SlotOfQByteArray as *mut crate::SlotOfQByteArray)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SlotOfRasterMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode(self as *const crate::SlotOfRasterMode as *mut crate::SlotOfRasterMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfUsageType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType(self as *const crate::SlotOfUsageType as *mut crate::SlotOfUsageType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfStatus2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status(self as *const crate::SlotOfStatus2 as *mut crate::SlotOfStatus2)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfU64 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_quint64::~ctr_qt_3d_render_ffi_slot_wrapper_quint64()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_quint64_dctr_qt_3d_render_ffi_slot_wrapper_quint64(self as *const crate::SlotOfU64 as *mut crate::SlotOfU64)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfFaceOrientationPickingMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode(self as *const crate::SlotOfFaceOrientationPickingMode as *mut crate::SlotOfFaceOrientationPickingMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfCubeMapFace {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace(self as *const crate::SlotOfCubeMapFace as *mut crate::SlotOfCubeMapFace)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr(self as *const crate::SlotOfQShaderProgram as *mut crate::SlotOfQShaderProgram)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SlotOfEnablement {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement(self as *const crate::SlotOfEnablement as *mut crate::SlotOfEnablement)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQColor {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref(self as *const crate::SlotOfQColor as *mut crate::SlotOfQColor)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQRenderTargetOutput {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr(self as *const crate::SlotOfQRenderTargetOutput as *mut crate::SlotOfQRenderTargetOutput)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfRenderPolicy {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy(self as *const crate::SlotOfRenderPolicy as *mut crate::SlotOfRenderPolicy)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfComparisonFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction(self as *const crate::SlotOfComparisonFunction as *mut crate::SlotOfComparisonFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfBlendFunction {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction(self as *const crate::SlotOfBlendFunction as *mut crate::SlotOfBlendFunction)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfPickMethod {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod(self as *const crate::SlotOfPickMethod as *mut crate::SlotOfPickMethod)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfPickResultMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode(self as *const crate::SlotOfPickResultMode as *mut crate::SlotOfPickResultMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr(self as *const crate::SlotOfQFrameGraphNode as *mut crate::SlotOfQFrameGraphNode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQVectorOfSortType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref(self as *const crate::SlotOfQVectorOfSortType as *mut crate::SlotOfQVectorOfSortType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQVectorOfInt {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref(self as *const crate::SlotOfQVectorOfInt as *mut crate::SlotOfQVectorOfInt)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfStatus3 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status(self as *const crate::SlotOfStatus3 as *mut crate::SlotOfStatus3)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SlotOfImageFormat {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat(self as *const crate::SlotOfImageFormat as *mut crate::SlotOfImageFormat)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfTextureFormat {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat(self as *const crate::SlotOfTextureFormat as *mut crate::SlotOfTextureFormat)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfBlending {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending(self as *const crate::SlotOfBlending as *mut crate::SlotOfBlending)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfOperation {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation(self as *const crate::SlotOfOperation as *mut crate::SlotOfOperation)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SlotOfQVectorOfQRayCasterHit {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref(self as *const crate::SlotOfQVectorOfQRayCasterHit as *mut crate::SlotOfQVectorOfQRayCasterHit)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr(self as *const crate::SlotOfQAbstractTexture as *mut crate::SlotOfQAbstractTexture)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQPickEvent {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr(self as *const crate::SlotOfQPickEvent as *mut crate::SlotOfQPickEvent)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::CppDeletable for crate::SlotOfRunMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode(self as *const crate::SlotOfRunMode as *mut crate::SlotOfRunMode)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfProjectionType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType(self as *const crate::SlotOfProjectionType as *mut crate::SlotOfProjectionType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQAttribute {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr(self as *const crate::SlotOfQAttribute as *mut crate::SlotOfQAttribute)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQBuffer {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr(self as *const crate::SlotOfQBuffer as *mut crate::SlotOfQBuffer)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfStatus4 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status(self as *const crate::SlotOfStatus4 as *mut crate::SlotOfStatus4)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfBufferType2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType(self as *const crate::SlotOfBufferType2 as *mut crate::SlotOfBufferType2)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQSize {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QSize::~ctr_qt_3d_render_ffi_slot_wrapper_QSize()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QSize_dctr_qt_3d_render_ffi_slot_wrapper_QSize(self as *const crate::SlotOfQSize as *mut crate::SlotOfQSize)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQLevelOfDetailBoundingSphere {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref(self as *const crate::SlotOfQLevelOfDetailBoundingSphere as *mut crate::SlotOfQLevelOfDetailBoundingSphere)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfOpenglProfile {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile(self as *const crate::SlotOfOpenglProfile as *mut crate::SlotOfOpenglProfile)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQStringList {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref::~ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_dctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref(self as *const crate::SlotOfQStringList as *mut crate::SlotOfQStringList)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfPrimitiveType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType(self as *const crate::SlotOfPrimitiveType as *mut crate::SlotOfPrimitiveType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfAttachmentPoint {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint(self as *const crate::SlotOfAttachmentPoint as *mut crate::SlotOfAttachmentPoint)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQCamera {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr(self as *const crate::SlotOfQCamera as *mut crate::SlotOfQCamera)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfWindingDirection {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection(self as *const crate::SlotOfWindingDirection as *mut crate::SlotOfWindingDirection)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfQEffect {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr(self as *const crate::SlotOfQEffect as *mut crate::SlotOfQEffect)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfStencilFaceMode {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode(self as *const crate::SlotOfStencilFaceMode as *mut crate::SlotOfStencilFaceMode)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::CppDeletable for crate::SlotOfFaceMode2 {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode(self as *const crate::SlotOfFaceMode2 as *mut crate::SlotOfFaceMode2)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfAttributeType {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType::~ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_dctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType(self as *const crate::SlotOfAttributeType as *mut crate::SlotOfAttributeType)
    }
}

impl ::cpp_core::CppDeletable for crate::SlotOfUint {
    /// Calls C++ function: <span style='color: green;'>```[destructor] void ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int::~ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int()```</span>.
    #[inline(always)]
    unsafe fn delete(&self) {
        crate::__ffi::ctr_qt_3d_render_ffi_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_dctr_qt_3d_render_ffi_slot_wrapper_unsigned_int(self as *const crate::SlotOfUint as *mut crate::SlotOfUint)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfApi> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfApi> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfApi {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfApi>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr360(
                ptr.as_raw_ptr() as *mut crate::SlotOfApi
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfApi {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr360(
                    self as *const crate::SlotOfApi as *mut crate::SlotOfApi,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfApi> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfApi> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_Api_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQGeometry> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQGeometry {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQGeometry>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr361(
                ptr.as_raw_ptr() as *mut crate::SlotOfQGeometry
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQGeometry {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr361(
                    self as *const crate::SlotOfQGeometry as *mut crate::SlotOfQGeometry,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQGeometry> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQGeometry> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometry_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQRenderTarget> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQRenderTarget {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQRenderTarget>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr362(
                ptr.as_raw_ptr() as *mut crate::SlotOfQRenderTarget
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQRenderTarget {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr362(
                    self as *const crate::SlotOfQRenderTarget as *mut crate::SlotOfQRenderTarget,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQRenderTarget> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQRenderTarget> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTarget_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQPoint {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQPoint>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr363(
                ptr.as_raw_ptr() as *mut crate::SlotOfQPoint
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQPoint {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr363(
                    self as *const crate::SlotOfQPoint as *mut crate::SlotOfQPoint,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QPoint_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfStatus> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfStatus {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfStatus>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr364(
                ptr.as_raw_ptr() as *mut crate::SlotOfStatus
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfStatus {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr364(
                    self as *const crate::SlotOfStatus as *mut crate::SlotOfStatus,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfStatus> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQVector3D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector3D* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector3D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQVector3D {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector3D* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQVector3D>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr365(
                ptr.as_raw_ptr() as *mut crate::SlotOfQVector3D
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQVector3D {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector3D* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr365(
                    self as *const crate::SlotOfQVector3D as *mut crate::SlotOfQVector3D,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQVector3D> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector3D* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector3D*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVector3D> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector3D_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfDepthFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfDepthFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfDepthFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfDepthFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr366(
                ptr.as_raw_ptr() as *mut crate::SlotOfDepthFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfDepthFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr366(
                    self as *const crate::SlotOfDepthFunction as *mut crate::SlotOfDepthFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfDepthFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfDepthFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QDepthTest_DepthFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SlotOfHandleType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfHandleType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfHandleType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfHandleType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr367(
                ptr.as_raw_ptr() as *mut crate::SlotOfHandleType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SlotOfHandleType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr367(
                    self as *const crate::SlotOfHandleType as *mut crate::SlotOfHandleType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SlotOfHandleType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfHandleType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSetFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfComparisonMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfComparisonMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfComparisonMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfComparisonMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr368(
                ptr.as_raw_ptr() as *mut crate::SlotOfComparisonMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfComparisonMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr368(
                    self as *const crate::SlotOfComparisonMode as *mut crate::SlotOfComparisonMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfComparisonMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfComparisonMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SlotOfAccess> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAccess> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfAccess {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfAccess>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr369(
                ptr.as_raw_ptr() as *mut crate::SlotOfAccess
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SlotOfAccess {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr369(
                    self as *const crate::SlotOfAccess as *mut crate::SlotOfAccess,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SlotOfAccess> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAccess> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_Access_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfBufferType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBufferType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfBufferType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfBufferType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr370(
                ptr.as_raw_ptr() as *mut crate::SlotOfBufferType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfBufferType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr370(
                    self as *const crate::SlotOfBufferType as *mut crate::SlotOfBufferType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfBufferType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBufferType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QClearBuffers_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfFilter {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfFilter>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr371(
                ptr.as_raw_ptr() as *mut crate::SlotOfFilter
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfFilter {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr371(
                    self as *const crate::SlotOfFilter as *mut crate::SlotOfFilter,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfFilter> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFilter> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Filter_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfCullingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfCullingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfCullingMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfCullingMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr372(
                ptr.as_raw_ptr() as *mut crate::SlotOfCullingMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfCullingMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr372(
                    self as *const crate::SlotOfCullingMode as *mut crate::SlotOfCullingMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfCullingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfCullingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCullFace_CullingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SlotOfHandleType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfHandleType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfHandleType2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfHandleType2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr373(
                ptr.as_raw_ptr() as *mut crate::SlotOfHandleType2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SlotOfHandleType2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr373(
                    self as *const crate::SlotOfHandleType2 as *mut crate::SlotOfHandleType2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0")))
)]
#[cfg(any(
    any(cpp_lib_version = "5.14.0", cpp_lib_version = "5.13.0"),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SlotOfHandleType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfHandleType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QWaitFence_HandleType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQFlagsOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQFlagsOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQFlagsOperation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQFlagsOperation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr374(
                ptr.as_raw_ptr() as *mut crate::SlotOfQFlagsOperation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQFlagsOperation {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr374(
                    self as *const crate::SlotOfQFlagsOperation
                        as *mut crate::SlotOfQFlagsOperation,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQFlagsOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQFlagsOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QFlags_Qt3DRender_QMemoryBarrier_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SlotOfFilterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFilterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfFilterMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfFilterMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr375(
                ptr.as_raw_ptr() as *mut crate::SlotOfFilterMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SlotOfFilterMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr375(
                    self as *const crate::SlotOfFilterMode as *mut crate::SlotOfFilterMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SlotOfFilterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFilterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_FilterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfAccessType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAccessType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfAccessType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfAccessType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr376(
                ptr.as_raw_ptr() as *mut crate::SlotOfAccessType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfAccessType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr376(
                    self as *const crate::SlotOfAccessType as *mut crate::SlotOfAccessType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfAccessType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAccessType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_AccessType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQVariant> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVariant* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVariant*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQVariant {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVariant* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQVariant>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr377(
                ptr.as_raw_ptr() as *mut crate::SlotOfQVariant
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQVariant {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVariant* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr377(
                    self as *const crate::SlotOfQVariant as *mut crate::SlotOfQVariant,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQVariant> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVariant* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVariant*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVariant> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVariant_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfAlphaFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAlphaFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfAlphaFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfAlphaFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr378(
                ptr.as_raw_ptr() as *mut crate::SlotOfAlphaFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfAlphaFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr378(
                    self as *const crate::SlotOfAlphaFunction as *mut crate::SlotOfAlphaFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfAlphaFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAlphaFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAlphaTest_AlphaFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfWrapMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfWrapMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfWrapMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr379(
                ptr.as_raw_ptr() as *mut crate::SlotOfWrapMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfWrapMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr379(
                    self as *const crate::SlotOfWrapMode as *mut crate::SlotOfWrapMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfWrapMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfWrapMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureWrapMode_WrapMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfStencilFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStencilFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfStencilFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfStencilFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr380(
                ptr.as_raw_ptr() as *mut crate::SlotOfStencilFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfStencilFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr380(
                    self as *const crate::SlotOfStencilFunction
                        as *mut crate::SlotOfStencilFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfStencilFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStencilFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQVectorOfDouble> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfDouble> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQVectorOfDouble {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQVectorOfDouble>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr381(
                ptr.as_raw_ptr() as *mut crate::SlotOfQVectorOfDouble
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQVectorOfDouble {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr381(
                    self as *const crate::SlotOfQVectorOfDouble
                        as *mut crate::SlotOfQVectorOfDouble,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQVectorOfDouble> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfDouble> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_double_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfSizeMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfSizeMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfSizeMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfSizeMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr382(
                ptr.as_raw_ptr() as *mut crate::SlotOfSizeMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfSizeMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr382(
                    self as *const crate::SlotOfSizeMode as *mut crate::SlotOfSizeMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfSizeMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfSizeMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPointSize_SizeMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfVertexBaseType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfVertexBaseType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfVertexBaseType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfVertexBaseType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr383(
                ptr.as_raw_ptr() as *mut crate::SlotOfVertexBaseType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfVertexBaseType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr383(
                    self as *const crate::SlotOfVertexBaseType as *mut crate::SlotOfVertexBaseType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfVertexBaseType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfVertexBaseType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_VertexBaseType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfThresholdType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfThresholdType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfThresholdType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfThresholdType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr384(
                ptr.as_raw_ptr() as *mut crate::SlotOfThresholdType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfThresholdType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr384(
                    self as *const crate::SlotOfThresholdType as *mut crate::SlotOfThresholdType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfThresholdType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfThresholdType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetail_ThresholdType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfFaceMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfFaceMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr385(
                ptr.as_raw_ptr() as *mut crate::SlotOfFaceMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfFaceMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr385(
                    self as *const crate::SlotOfFaceMode as *mut crate::SlotOfFaceMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQByteArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQByteArray {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQByteArray>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr386(
                ptr.as_raw_ptr() as *mut crate::SlotOfQByteArray
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQByteArray {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr386(
                    self as *const crate::SlotOfQByteArray as *mut crate::SlotOfQByteArray,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQByteArray> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQByteArray> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QByteArray_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SlotOfRasterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfRasterMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfRasterMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr387(
                ptr.as_raw_ptr() as *mut crate::SlotOfRasterMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SlotOfRasterMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr387(
                    self as *const crate::SlotOfRasterMode as *mut crate::SlotOfRasterMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SlotOfRasterMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfRasterMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_RasterMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfUsageType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfUsageType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfUsageType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfUsageType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr388(
                ptr.as_raw_ptr() as *mut crate::SlotOfUsageType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfUsageType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr388(
                    self as *const crate::SlotOfUsageType as *mut crate::SlotOfUsageType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfUsageType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfUsageType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_UsageType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfStatus2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfStatus2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfStatus2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr389(
                ptr.as_raw_ptr() as *mut crate::SlotOfStatus2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfStatus2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr389(
                    self as *const crate::SlotOfStatus2 as *mut crate::SlotOfStatus2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfStatus2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QTextureImage_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfU64> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_quint64* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_quint64*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfU64> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_quint64_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfU64 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_quint64* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfU64>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr390(
                ptr.as_raw_ptr() as *mut crate::SlotOfU64
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfU64 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_quint64* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr390(
                    self as *const crate::SlotOfU64 as *mut crate::SlotOfU64,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfU64> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_quint64* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_quint64*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfU64> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_quint64_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfFaceOrientationPickingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFaceOrientationPickingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfFaceOrientationPickingMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfFaceOrientationPickingMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr391(
                ptr.as_raw_ptr() as *mut crate::SlotOfFaceOrientationPickingMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfFaceOrientationPickingMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr391(
                    self as *const crate::SlotOfFaceOrientationPickingMode
                        as *mut crate::SlotOfFaceOrientationPickingMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfFaceOrientationPickingMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFaceOrientationPickingMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_FaceOrientationPickingMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfCubeMapFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfCubeMapFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfCubeMapFace {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfCubeMapFace>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr392(
                ptr.as_raw_ptr() as *mut crate::SlotOfCubeMapFace
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfCubeMapFace {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr392(
                    self as *const crate::SlotOfCubeMapFace as *mut crate::SlotOfCubeMapFace,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfCubeMapFace> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfCubeMapFace> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_CubeMapFace_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQShaderProgram {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQShaderProgram>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr393(
                ptr.as_raw_ptr() as *mut crate::SlotOfQShaderProgram
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQShaderProgram {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr393(
                    self as *const crate::SlotOfQShaderProgram as *mut crate::SlotOfQShaderProgram,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQShaderProgram> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQShaderProgram> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderProgram_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SlotOfEnablement> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfEnablement> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfEnablement {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfEnablement>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr394(
                ptr.as_raw_ptr() as *mut crate::SlotOfEnablement
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SlotOfEnablement {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr394(
                    self as *const crate::SlotOfEnablement as *mut crate::SlotOfEnablement,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SlotOfEnablement> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfEnablement> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSubtreeEnabler_Enablement_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQColor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQColor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQColor {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQColor>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr395(
                ptr.as_raw_ptr() as *mut crate::SlotOfQColor
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQColor {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr395(
                    self as *const crate::SlotOfQColor as *mut crate::SlotOfQColor,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQColor> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQColor> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QColor_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQRenderTargetOutput> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQRenderTargetOutput {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQRenderTargetOutput>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr396(
                ptr.as_raw_ptr() as *mut crate::SlotOfQRenderTargetOutput
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQRenderTargetOutput {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr396(
                    self as *const crate::SlotOfQRenderTargetOutput
                        as *mut crate::SlotOfQRenderTargetOutput,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQRenderTargetOutput> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQRenderTargetOutput> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfRenderPolicy> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfRenderPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfRenderPolicy {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfRenderPolicy>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr397(
                ptr.as_raw_ptr() as *mut crate::SlotOfRenderPolicy
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfRenderPolicy {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr397(
                    self as *const crate::SlotOfRenderPolicy as *mut crate::SlotOfRenderPolicy,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfRenderPolicy> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfRenderPolicy> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderSettings_RenderPolicy_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfComparisonFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfComparisonFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfComparisonFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfComparisonFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr398(
                ptr.as_raw_ptr() as *mut crate::SlotOfComparisonFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfComparisonFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr398(
                    self as *const crate::SlotOfComparisonFunction
                        as *mut crate::SlotOfComparisonFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfComparisonFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfComparisonFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ComparisonFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfBlendFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBlendFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfBlendFunction {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfBlendFunction>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr399(
                ptr.as_raw_ptr() as *mut crate::SlotOfBlendFunction
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfBlendFunction {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr399(
                    self as *const crate::SlotOfBlendFunction as *mut crate::SlotOfBlendFunction,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfBlendFunction> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBlendFunction> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquation_BlendFunction_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfPickMethod> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfPickMethod> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfPickMethod {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfPickMethod>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr400(
                ptr.as_raw_ptr() as *mut crate::SlotOfPickMethod
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfPickMethod {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr400(
                    self as *const crate::SlotOfPickMethod as *mut crate::SlotOfPickMethod,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfPickMethod> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfPickMethod> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickMethod_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfPickResultMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfPickResultMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfPickResultMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfPickResultMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr401(
                ptr.as_raw_ptr() as *mut crate::SlotOfPickResultMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfPickResultMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr401(
                    self as *const crate::SlotOfPickResultMode as *mut crate::SlotOfPickResultMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfPickResultMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfPickResultMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickingSettings_PickResultMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQFrameGraphNode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQFrameGraphNode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQFrameGraphNode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr402(
                ptr.as_raw_ptr() as *mut crate::SlotOfQFrameGraphNode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQFrameGraphNode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr402(
                    self as *const crate::SlotOfQFrameGraphNode
                        as *mut crate::SlotOfQFrameGraphNode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQFrameGraphNode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQFrameGraphNode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrameGraphNode_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQVectorOfSortType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQVectorOfSortType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQVectorOfSortType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr403(
                ptr.as_raw_ptr() as *mut crate::SlotOfQVectorOfSortType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQVectorOfSortType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr403(
                    self as *const crate::SlotOfQVectorOfSortType
                        as *mut crate::SlotOfQVectorOfSortType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQVectorOfSortType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfSortType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QSortPolicy_SortType_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQVectorOfInt> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfInt> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQVectorOfInt {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQVectorOfInt>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr404(
                ptr.as_raw_ptr() as *mut crate::SlotOfQVectorOfInt
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQVectorOfInt {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr404(
                    self as *const crate::SlotOfQVectorOfInt as *mut crate::SlotOfQVectorOfInt,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQVectorOfInt> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfInt> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_int_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfStatus3> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus3> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfStatus3 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfStatus3>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr405(
                ptr.as_raw_ptr() as *mut crate::SlotOfStatus3
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfStatus3 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr405(
                    self as *const crate::SlotOfStatus3 as *mut crate::SlotOfStatus3,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfStatus3> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus3> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QSceneLoader_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SlotOfImageFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfImageFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfImageFormat {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfImageFormat>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr406(
                ptr.as_raw_ptr() as *mut crate::SlotOfImageFormat
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SlotOfImageFormat {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr406(
                    self as *const crate::SlotOfImageFormat as *mut crate::SlotOfImageFormat,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SlotOfImageFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfImageFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QShaderImage_ImageFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfTextureFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfTextureFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfTextureFormat {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfTextureFormat>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr407(
                ptr.as_raw_ptr() as *mut crate::SlotOfTextureFormat
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfTextureFormat {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr407(
                    self as *const crate::SlotOfTextureFormat as *mut crate::SlotOfTextureFormat,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfTextureFormat> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfTextureFormat> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_TextureFormat_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfBlending> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBlending> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfBlending {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfBlending>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr408(
                ptr.as_raw_ptr() as *mut crate::SlotOfBlending
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfBlending {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr408(
                    self as *const crate::SlotOfBlending as *mut crate::SlotOfBlending,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfBlending> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBlending> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBlendEquationArguments_Blending_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfOperation {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfOperation>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr409(
                ptr.as_raw_ptr() as *mut crate::SlotOfOperation
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfOperation {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr409(
                    self as *const crate::SlotOfOperation as *mut crate::SlotOfOperation,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfOperation> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfOperation> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilOperationArguments_Operation_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SlotOfQVectorOfQRayCasterHit> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQVectorOfQRayCasterHit {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQVectorOfQRayCasterHit>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr410(
                ptr.as_raw_ptr() as *mut crate::SlotOfQVectorOfQRayCasterHit
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SlotOfQVectorOfQRayCasterHit {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr410(
                    self as *const crate::SlotOfQVectorOfQRayCasterHit
                        as *mut crate::SlotOfQVectorOfQRayCasterHit,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SlotOfQVectorOfQRayCasterHit> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQVectorOfQRayCasterHit> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QVector_Qt3DRender_QRayCasterHit_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQAbstractTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQAbstractTexture {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQAbstractTexture>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr411(
                ptr.as_raw_ptr() as *mut crate::SlotOfQAbstractTexture
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQAbstractTexture {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr411(
                    self as *const crate::SlotOfQAbstractTexture
                        as *mut crate::SlotOfQAbstractTexture,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQAbstractTexture> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQAbstractTexture> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQPickEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQPickEvent {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQPickEvent>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr412(
                ptr.as_raw_ptr() as *mut crate::SlotOfQPickEvent
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQPickEvent {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr412(
                    self as *const crate::SlotOfQPickEvent as *mut crate::SlotOfQPickEvent,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQPickEvent> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQPickEvent> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QPickEvent_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticDowncast<crate::SlotOfRunMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfRunMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfRunMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfRunMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr413(
                ptr.as_raw_ptr() as *mut crate::SlotOfRunMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::std::ops::Deref for crate::SlotOfRunMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr413(
                    self as *const crate::SlotOfRunMode as *mut crate::SlotOfRunMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    )))
)]
#[cfg(any(
    any(
        cpp_lib_version = "5.14.0",
        cpp_lib_version = "5.11.3",
        cpp_lib_version = "5.12.2",
        cpp_lib_version = "5.13.0"
    ),
    feature = "ritual_rustdoc"
))]
impl ::cpp_core::DynamicCast<crate::SlotOfRunMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfRunMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractRayCaster_RunMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfProjectionType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfProjectionType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfProjectionType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfProjectionType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr414(
                ptr.as_raw_ptr() as *mut crate::SlotOfProjectionType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfProjectionType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr414(
                    self as *const crate::SlotOfProjectionType as *mut crate::SlotOfProjectionType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfProjectionType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfProjectionType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCameraLens_ProjectionType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQAttribute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQAttribute {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQAttribute>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr415(
                ptr.as_raw_ptr() as *mut crate::SlotOfQAttribute
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQAttribute {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr415(
                    self as *const crate::SlotOfQAttribute as *mut crate::SlotOfQAttribute,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQAttribute> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQAttribute> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQBuffer {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQBuffer>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr416(
                ptr.as_raw_ptr() as *mut crate::SlotOfQBuffer
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQBuffer {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr416(
                    self as *const crate::SlotOfQBuffer as *mut crate::SlotOfQBuffer,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQBuffer> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQBuffer> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfStatus4> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfStatus4 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfStatus4>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr417(
                ptr.as_raw_ptr() as *mut crate::SlotOfStatus4
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfStatus4 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr417(
                    self as *const crate::SlotOfStatus4 as *mut crate::SlotOfStatus4,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfStatus4> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStatus4> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAbstractTexture_Status_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfBufferType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBufferType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfBufferType2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfBufferType2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr418(
                ptr.as_raw_ptr() as *mut crate::SlotOfBufferType2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfBufferType2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr418(
                    self as *const crate::SlotOfBufferType2 as *mut crate::SlotOfBufferType2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfBufferType2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfBufferType2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QBuffer_BufferType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QSize* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QSize*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QSize_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQSize {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QSize* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQSize>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr419(
                ptr.as_raw_ptr() as *mut crate::SlotOfQSize
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQSize {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QSize* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr419(
                    self as *const crate::SlotOfQSize as *mut crate::SlotOfQSize,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQSize> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QSize* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QSize*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQSize> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QSize_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQLevelOfDetailBoundingSphere> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQLevelOfDetailBoundingSphere {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQLevelOfDetailBoundingSphere>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr420(
                ptr.as_raw_ptr() as *mut crate::SlotOfQLevelOfDetailBoundingSphere
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQLevelOfDetailBoundingSphere {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr420(
                    self as *const crate::SlotOfQLevelOfDetailBoundingSphere
                        as *mut crate::SlotOfQLevelOfDetailBoundingSphere,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQLevelOfDetailBoundingSphere> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQLevelOfDetailBoundingSphere> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QLevelOfDetailBoundingSphere_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfOpenglProfile> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfOpenglProfile> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfOpenglProfile {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfOpenglProfile>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr421(
                ptr.as_raw_ptr() as *mut crate::SlotOfOpenglProfile
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfOpenglProfile {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr421(
                    self as *const crate::SlotOfOpenglProfile as *mut crate::SlotOfOpenglProfile,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfOpenglProfile> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfOpenglProfile> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGraphicsApiFilter_OpenGLProfile_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQStringList> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQStringList {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQStringList>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr422(
                ptr.as_raw_ptr() as *mut crate::SlotOfQStringList
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQStringList {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr422(
                    self as *const crate::SlotOfQStringList as *mut crate::SlotOfQStringList,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQStringList> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQStringList> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_QStringList_const_ref_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfPrimitiveType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfPrimitiveType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfPrimitiveType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfPrimitiveType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr423(
                ptr.as_raw_ptr() as *mut crate::SlotOfPrimitiveType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfPrimitiveType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr423(
                    self as *const crate::SlotOfPrimitiveType as *mut crate::SlotOfPrimitiveType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfPrimitiveType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfPrimitiveType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QGeometryRenderer_PrimitiveType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfAttachmentPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfAttachmentPoint {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfAttachmentPoint>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr424(
                ptr.as_raw_ptr() as *mut crate::SlotOfAttachmentPoint
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfAttachmentPoint {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr424(
                    self as *const crate::SlotOfAttachmentPoint
                        as *mut crate::SlotOfAttachmentPoint,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfAttachmentPoint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAttachmentPoint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRenderTargetOutput_AttachmentPoint_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQCamera> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQCamera {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQCamera>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr425(
                ptr.as_raw_ptr() as *mut crate::SlotOfQCamera
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQCamera {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr425(
                    self as *const crate::SlotOfQCamera as *mut crate::SlotOfQCamera,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQCamera> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQCamera> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QCamera_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfWindingDirection> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfWindingDirection> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfWindingDirection {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfWindingDirection>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr426(
                ptr.as_raw_ptr() as *mut crate::SlotOfWindingDirection
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfWindingDirection {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr426(
                    self as *const crate::SlotOfWindingDirection
                        as *mut crate::SlotOfWindingDirection,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfWindingDirection> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfWindingDirection> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QFrontFace_WindingDirection_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfQEffect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfQEffect {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfQEffect>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr427(
                ptr.as_raw_ptr() as *mut crate::SlotOfQEffect
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfQEffect {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr427(
                    self as *const crate::SlotOfQEffect as *mut crate::SlotOfQEffect,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfQEffect> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfQEffect> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QEffect_ptr_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfStencilFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStencilFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfStencilFaceMode {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfStencilFaceMode>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr428(
                ptr.as_raw_ptr() as *mut crate::SlotOfStencilFaceMode
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfStencilFaceMode {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr428(
                    self as *const crate::SlotOfStencilFaceMode
                        as *mut crate::SlotOfStencilFaceMode,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfStencilFaceMode> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfStencilFaceMode> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QStencilTestArguments_StencilFaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticDowncast<crate::SlotOfFaceMode2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFaceMode2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfFaceMode2 {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfFaceMode2>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr429(
                ptr.as_raw_ptr() as *mut crate::SlotOfFaceMode2
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::std::ops::Deref for crate::SlotOfFaceMode2 {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr429(
                    self as *const crate::SlotOfFaceMode2 as *mut crate::SlotOfFaceMode2,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
impl ::cpp_core::DynamicCast<crate::SlotOfFaceMode2> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfFaceMode2> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QRasterMode_FaceMode_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfAttributeType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAttributeType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfAttributeType {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfAttributeType>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr430(
                ptr.as_raw_ptr() as *mut crate::SlotOfAttributeType
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfAttributeType {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr430(
                    self as *const crate::SlotOfAttributeType as *mut crate::SlotOfAttributeType,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfAttributeType> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfAttributeType> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_Qt3DRender_QAttribute_AttributeType_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticDowncast<crate::SlotOfUint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int* static_cast<ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_downcast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfUint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::cpp_core::StaticUpcast<::qt_core::QObject> for crate::SlotOfUint {
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int* ptr)```</span>.
    #[inline(always)]
    unsafe fn static_upcast(
        ptr: ::cpp_core::Ptr<crate::SlotOfUint>,
    ) -> ::cpp_core::Ptr<::qt_core::QObject> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr431(
                ptr.as_raw_ptr() as *mut crate::SlotOfUint
            )
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

impl ::std::ops::Deref for crate::SlotOfUint {
    type Target = ::qt_core::QObject;
    /// Calls C++ function: <span style='color: green;'>```QObject* static_cast<QObject*>(ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int* ptr)```</span>.
    #[inline(always)]
    fn deref(&self) -> &::qt_core::QObject {
        let ffi_result = {
            unsafe {
                crate::__ffi::ctr_qt_3d_render_ffi_static_cast_QObject_ptr431(
                    self as *const crate::SlotOfUint as *mut crate::SlotOfUint,
                )
            }
        };
        unsafe { ffi_result.as_ref() }.expect("Attempted to convert null pointer to reference")
    }
}

impl ::cpp_core::DynamicCast<crate::SlotOfUint> for ::qt_core::QObject {
    /// Calls C++ function: <span style='color: green;'>```ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int* dynamic_cast<ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int*>(QObject* ptr)```</span>.
    #[inline(always)]
    unsafe fn dynamic_cast(
        ptr: ::cpp_core::Ptr<::qt_core::QObject>,
    ) -> ::cpp_core::Ptr<crate::SlotOfUint> {
        let ffi_result = {
            crate::__ffi::ctr_qt_3d_render_ffi_dynamic_cast_ctr_qt_3d_render_ffi_slot_wrapper_unsigned_int_ptr(ptr.as_raw_ptr() as *mut ::qt_core::QObject)
        };
        ::cpp_core::Ptr::from_raw(ffi_result)
    }
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QAbstractTextureImage*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_abstract_texture_image_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(
            key,
        )
        .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QParameter*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_parameter_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash1(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QTechnique*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_technique_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash2(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QAttribute*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_attribute_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash3(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QLayer*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_layer_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash4(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QFilterKey*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_filter_key_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash5(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderState*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_render_state_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash6(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderTargetOutput*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_render_target_output_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash7(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(
            key,
        )
        .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_attachment_point_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash8(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QSortPolicy::SortType>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_sort_type_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash9(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderPass*>& key, unsigned int seed = …)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_render_pass_uint(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
    seed: ::std::os::raw::c_uint,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash10(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(key)
            .as_raw_ptr(),
        seed,
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QAbstractTextureImage*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_abstract_texture_image(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash11(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAbstractTextureImage>>::cast_into(
            key,
        )
        .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QParameter*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_parameter(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQParameter>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash12(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQParameter>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QTechnique*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_technique(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQTechnique>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash13(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQTechnique>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QAttribute*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_attribute(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQAttribute>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash14(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQAttribute>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QLayer*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_layer(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQLayer>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash15(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQLayer>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QFilterKey*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_filter_key(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQFilterKey>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash16(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQFilterKey>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderState*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_render_state(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderState>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash17(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderState>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderTargetOutput*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_render_target_output(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash18(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderTargetOutput>>::cast_into(
            key,
        )
        .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderTargetOutput::AttachmentPoint>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_attachment_point(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash19(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfAttachmentPoint>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QSortPolicy::SortType>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_sort_type(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfSortType>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash20(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfSortType>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```unsigned int qHash(const QVector<Qt3DRender::QRenderPass*>& key)```</span>.
#[inline(always)]
pub unsafe fn q_hash_q_vector_of_q_render_pass(
    key: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QVectorOfQRenderPass>>,
) -> ::std::os::raw::c_uint {
    crate::__ffi::ctr_qt_3d_render_ffi_qHash21(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QVectorOfQRenderPass>>::cast_into(key)
            .as_raw_ptr(),
    )
}

/// Calls C++ function: <span style='color: green;'>```void Qt3DRender::swap(Qt3DRender::QTextureDataUpdate& lhs, Qt3DRender::QTextureDataUpdate& rhs)```</span>.
#[inline(always)]
#[cfg_attr(
    feature = "ritual_rustdoc_nightly",
    doc(cfg(cpp_lib_version = "5.14.0"))
)]
#[cfg(any(cpp_lib_version = "5.14.0", feature = "ritual_rustdoc"))]
pub unsafe fn swap(
    lhs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureDataUpdate>>,
    rhs: impl ::cpp_core::CastInto<::cpp_core::Ref<crate::QTextureDataUpdate>>,
) {
    crate::__ffi::ctr_qt_3d_render_ffi_Qt3DRender_swap(
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureDataUpdate>>::cast_into(lhs)
            .as_raw_ptr() as *mut crate::QTextureDataUpdate,
        ::cpp_core::CastInto::<::cpp_core::Ref<crate::QTextureDataUpdate>>::cast_into(rhs)
            .as_raw_ptr() as *mut crate::QTextureDataUpdate,
    )
}
